Le système de routage avec React : les pages et la navigation
Le système de routage permet de gérer la navigation entre différentes pages ou vues dans une application React sans avoir à recharger complètement la page.
react-router-dom
est une bibliothèque qui facilite la mise en place du routage dans une application React.
Avec React Router, on définit des routes spécifiques pour différentes pages et on indique quels composants doivent être rendus en fonction de l'URL à atteindre.
Commençons par installer React Router en exécutant ceci dans votre terminal :
npm install react-router-dom
Les routes
Analysons maintenant un exemple de code pour comprendre comment le système de routage fonctionne (il y a plusieurs façon de procéder).
Ici, j'ai effectué mon routage dans un fichier que j'ai nommé AppRouter.js.
J'ai ici la page Home, la page About, la page Erreur 404.
Configuration des routes :
AppRouter.js
import Home from "./pages/Home/Home";
import About from "./pages/About/About";
import Error from "./pages/Error/Error";
import { BrowserRouter as Router, Route, Routes } from "react-router-dom";
const AppRouter = () => {
return (
<div>
<Router>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
<Route path="*" element={<Error />} />
</Routes>
</Router>
</div>
);
};
export default AppRouter;
- Le composant
Router
(ou BrowserRouter) englobe l'ensemble de l' application. Il sert de point de départ pour gérer les routes. - Les routes sont définies à l'intérieur d'un composant
Routes
. ChaqueRoute
correspond à une URL spécifique et indique quel composant de page afficher lorsque cette URL est atteinte. <Route path="/" element={<Home />} />
signifie que lorsque l'URL est exactement"/"
, le composant de pageHome
sera rendu.<Route path="/about" element={<About />} />
signifie que lorsque l'URL est"/about"
, le composant de pageAbout
sera rendu.<Route path="*" element={<Error />} />
signifie que pour toute autre URL qui ne correspond pas aux routes précédentes, le composant de pageError
sera rendu.
Ensuite, pour rendre l'application fonctionnelle, on va utiliser le composant AppRouter
dans notre point d'entrée, généralement dans le fichier index.js
.
import React from "react";
import ReactDOM from "react-dom/client";
import AppRouter from "./AppRouter/AppRouter";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<React.StrictMode>
<AppRouter />
</React.StrictMode>
);
<React.StrictMode>
<React.StrictMode> est un composant spécial fourni par React qui aide les développeurs à détecter et à corriger des problèmes potentiels dans leurs applications React.
Il ne modifie pas le comportement de votre application en production, mais il vous aide à repérer des avertissements et des erreurs pendant le développement.
Lorsque vous enrobez votre composant racine (dans notre cas, <AppRouter />) avec <React.StrictMode>, React effectuera plusieurs vérifications supplémentaires pendant le rendu et la mise à jour des composants. Ces vérifications aident à identifier les problèmes courants.
L'idée derrière <React.StrictMode> est d'améliorer la qualité générale de votre application en vous aidant à identifier les problèmes dès le développement.
Il est recommandé de l'utiliser pendant le développement et de le désactiver en production, car il peut causer des avertissements et ralentir légèrement les performances.
La navigation
Créons un menu de navigation avec les liens vers les différentes pages de notre application.
Voici les étapes à suivre :
- Création des composants de page : créez les composants pour les différentes pages de votre application, comme
Home
,About
etContact
. - Création du composant de menu : créez un composant
NavigationMenu.js
(par exemple) pour gérer le menu de navigation. Ce composant inclura les liens vers les différentes pages à l'aide de la bibliothèquereact-router-dom
.
// NavigationMenu.js
import React from 'react';
import { Link } from 'react-router-dom';
const NavigationMenu = () => {
return (
<nav>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/about">About</Link></li>
<li><Link to="/contact">Contact</Link></li>
</ul>
</nav>
);
};
export default NavigationMenu;
Utiliser ensuite le composant de menu : Utilisez le composant NavigationMenu
dans votre composant Header
(ou là où vous souhaitez afficher le menu de navigation).
// Header.js
import React from 'react';
import NavigationMenu from './NavigationMenu'; // Assurez-vous que le chemin est correct
const Header = () => {
return (
<header>
<h1>Mon Application</h1>
<NavigationMenu />
</header>
);
};
export default Header;
Avec ces étapes, vous aurez un menu de navigation dans votre en-tête qui affiche les liens vers les différentes pages de votre application. Lorsque vous cliquez sur ces liens, le système de routage de react-router-dom
affichera le contenu de la page correspondante.