


Maîtriser les routes imbriquées dans React Router : créer des mises en page dynamiques
Routes imbriquées dans React Router
LesRoutes 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.
Comment créer des itinéraires imbriqués
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.
Étapes pour implémenter des itinéraires imbriqués
- Parent Route : Définissez une route pour un composant parent.
- Routes enfants : à l'intérieur du composant parent, créez un composant Routes avec des composants Route supplémentaires pour gérer les routes enfants.
-
Rendre les composants enfants : assurez-vous que le composant parent contient un
composant, qui agit comme un espace réservé pour le rendu des composants enfants.
Exemple de base d'itinéraires imbriqués
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;
Explication :
- Le composant Dashboard est la route parent qui restitue les liens de navigation et la
composant. Le sert d'espace réservé où les composants de l'itinéraire enfant seront rendus. - Les composants Profil et Paramètres sont les itinéraires imbriqués à l'intérieur du tableau de bord.
- Les composants Lien sont utilisés pour la navigation et, lorsque vous cliquez dessus, ils mettront à jour l'URL et afficheront les composants imbriqués respectifs (par exemple, /dashboard/profile ou /dashboard/settings).
- Les composants Routes et Route à l'intérieur du tableau de bord définissent les routes imbriquées, garantissant que lorsque l'URL correspond à /dashboard/profile ou /dashboard/settings, les composants appropriés sont rendus.
Routes imbriquées avec paramètres de chemin
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;
Explication :
- Le composant Profile reçoit un paramètre dynamique de l'URL (/dashboard/profile/:id).
- Le hook useParams() est utilisé pour accéder au paramètre dynamique, dans ce cas, id.
- La route parent /dashboard a des routes enfants pour chaque profil, et lorsque l'URL change (par exemple, /dashboard/profile/1), le composant Profil affichera l'ID de l'utilisateur.
Gestion des routes imbriquées par défaut
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;
Explication :
- La route d'index est une route spéciale utilisée pour définir le composant par défaut lorsque la route parent correspond mais qu'aucun chemin enfant n'est fourni.
- Dans ce cas, /dashboard affichera le composant DashboardHome par défaut, mais si /dashboard/profile ou /dashboard/settings est accédé, le composant respectif sera affiché.
Conclusion
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en JavaScript? Lors du traitement des données, nous rencontrons souvent la nécessité d'avoir le même ID ...

Apprendre JavaScript n'est pas difficile, mais c'est difficile. 1) Comprendre les concepts de base tels que les variables, les types de données, les fonctions, etc. 2) Master la programmation asynchrone et les implémenter via des boucles d'événements. 3) Utilisez les opérations DOM et promettez de gérer les demandes asynchrones. 4) Évitez les erreurs courantes et utilisez des techniques de débogage. 5) Optimiser les performances et suivre les meilleures pratiques.

La discussion sur la réalisation des effets de défilement de parallaxe et d'animation des éléments dans cet article explorera comment réaliser le site officiel de Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ...

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

Discussion approfondie des causes profondes de la différence de sortie Console.log. Cet article analysera les différences dans les résultats de sortie de la fonction Console.log dans un morceau de code et expliquera les raisons derrière. � ...
