Maison >interface Web >js tutoriel >Maîtriser les routes imbriquées dans React Router : créer des mises en page dynamiques
Routes imbriquées dans React Router vous permettent de définir des itinéraires au sein d'autres itinéraires, permettant des mises en page complexes et la possibilité d'afficher différents composants en fonction du chemin. Cette fonctionnalité est particulièrement utile pour créer des applications avec des sections possédant leurs propres sous-routes, telles que des tableaux de bord, des profils ou des panneaux d'administration.
Les routes imbriquées aident à créer des URL hiérarchiques, où chaque route peut avoir des routes enfants qui restituent un contenu spécifique à l'intérieur de leur composant parent.
Pour configurer des routes imbriquées dans React Router, vous définissez des routes au sein d'une route parent à l'aide des composants Routes et Route.
Voici un exemple de base montrant comment définir une route parent et des routes imbriquées :
import React from 'react'; import { BrowserRouter, Routes, Route, Link, Outlet } from 'react-router-dom'; // Parent Component const Dashboard = () => { return ( <div> <h2>Dashboard</h2> <nav> <ul> <li><Link to="profile">Profile</Link></li> <li><Link to="settings">Settings</Link></li> </ul> </nav> <hr /> <Outlet /> {/* Child route content will render here */} </div> ); }; // Child Components const Profile = () => <h3>Profile Page</h3>; const Settings = () => <h3>Settings Page</h3>; const App = () => { return ( <BrowserRouter> <Routes> {/* Parent Route */} <Route path="dashboard" element={<Dashboard />}> {/* Nested Routes */} <Route path="profile" element={<Profile />} /> <Route path="settings" element={<Settings />} /> </Route> </Routes> </BrowserRouter> ); }; export default App;
Vous pouvez également créer des itinéraires imbriqués avec des paramètres dynamiques.
import React from 'react'; import { BrowserRouter, Routes, Route, Link, Outlet } from 'react-router-dom'; // Parent Component const Dashboard = () => { return ( <div> <h2>Dashboard</h2> <nav> <ul> <li><Link to="profile">Profile</Link></li> <li><Link to="settings">Settings</Link></li> </ul> </nav> <hr /> <Outlet /> {/* Child route content will render here */} </div> ); }; // Child Components const Profile = () => <h3>Profile Page</h3>; const Settings = () => <h3>Settings Page</h3>; const App = () => { return ( <BrowserRouter> <Routes> {/* Parent Route */} <Route path="dashboard" element={<Dashboard />}> {/* Nested Routes */} <Route path="profile" element={<Profile />} /> <Route path="settings" element={<Settings />} /> </Route> </Routes> </BrowserRouter> ); }; export default App;
React Router fournit un moyen de gérer les routes imbriquées par défaut. Si aucun itinéraire enfant spécifique ne correspond, vous pouvez afficher un composant par défaut.
import React from 'react'; import { BrowserRouter, Routes, Route, Link, Outlet, useParams } from 'react-router-dom'; const Dashboard = () => { return ( <div> <h2>Dashboard</h2> <nav> <ul> <li><Link to="profile/1">Profile 1</Link></li> <li><Link to="profile/2">Profile 2</Link></li> </ul> </nav> <hr /> <Outlet /> {/* Child route content will render here */} </div> ); }; const Profile = () => { const { id } = useParams(); // Retrieve the 'id' parameter from the URL return <h3>Profile Page for User: {id}</h3>; }; const App = () => { return ( <BrowserRouter> <Routes> {/* Parent Route */} <Route path="dashboard" element={<Dashboard />}> {/* Nested Route with Path Parameter */} <Route path="profile/:id" element={<Profile />} /> </Route> </Routes> </BrowserRouter> ); }; export default App;
Les routes imbriquées dans React Router sont une fonctionnalité essentielle pour créer des interfaces utilisateur complexes avec des structures hiérarchiques. Ils vous permettent de diviser votre application en composants plus petits et gérables tout en gardant la navigation propre et dynamique. En utilisant le bouton
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!