écran d'ordinateur affichant du code React

React Router : Gérez la navigation dans vos applications React

Publié le

React Router est une bibliothèque incontournable pour gérer la navigation et le routage dans les applications React. Elle permet de créer des interfaces dynamiques et interactives en définissant des routes pour chaque composant ou vue de votre application. Dans cet article, nous allons explorer les bases de React Router, ses fonctionnalités clés et ses meilleures pratiques.

Qu'est-ce que React Router ?

React Router est une bibliothèque open-source qui étend les capacités de React en ajoutant un système de routage client. Elle permet de définir des routes, qui sont des chemins spécifiques associés à des composants React.

  • Navigation dynamique : Les routes changent l'interface sans recharger la page.
  • Synchronisation avec l'URL : L'URL reflète toujours l'état actuel de l'application.
  • Flexibilité : Gestion facile des routes dynamiques, des paramètres et des redirections.

Comment installer React Router ?

Pour commencer, installez la bibliothèque avec npm ou yarn :

npm install react-router-dom

Assurez-vous également d'avoir une version récente de React. Une fois installé, importez les composants nécessaires comme BrowserRouter, Routes, et Route.

Utilisation de base de React Router

Voici un exemple simple où React Router est utilisé pour définir trois routes : une page d'accueil, une page à propos et une page d'erreur 404 :

import React from 'react';
import { BrowserRouter, Routes, Route } from 'react-router-dom';

function App() {
    return (
        <BrowserRouter>
            <Routes>
                <Route path="/" element={<Home />} />
                <Route path="/about" element={<About />} />
                <Route path="*" element={<NotFound />} />
            </Routes>
        </BrowserRouter>
    );
}

function Home() {
    return <h1>Bienvenue sur la page d'accueil</h1>;
}

function About() {
    return <h1>À propos</h1>;
}

function NotFound() {
    return <h1>Page non trouvée</h1>;
}

export default App;

Dans cet exemple :

  • BrowserRouter enveloppe l'application pour activer la gestion des routes.
  • Routes contient toutes les routes définies.
  • Route associe chaque chemin à un composant spécifique.

Routes dynamiques et paramètres

React Router prend également en charge les routes dynamiques. Voici comment afficher des détails en fonction de l'ID dans l'URL :

import { useParams } from 'react-router-dom';

function UserProfile() {
    const { id } = useParams();

    return <h1>Profil de l'utilisateur {id}</h1>;
}

// Ajoutez la route suivante :
<Route path="/user/:id" element={<UserProfile />} />;

Le paramètre id est automatiquement extrait de l'URL grâce au hook useParams.

Gestion avancée des routes avec useLocation et useNavigate

React Router fournit des hooks puissants pour accéder aux informations de routage et naviguer dans l'application. Voici comment utiliser useLocation et useNavigate.

Utiliser useLocation pour accéder à l'URL actuelle

Le hook useLocation permet d'accéder à l'objet représentant l'URL actuelle, incluant le chemin, les paramètres de recherche et l'état.

import { useLocation } from 'react-router-dom';

function CurrentLocation() {
    const location = useLocation();

    return (
        <div>
            <h1>Votre localisation actuelle</h1>
            <p>Chemin : {location.pathname}</p>
            <p>Recherche : {location.search}</p>
            <p>État : {JSON.stringify(location.state)}</p>
        </div>
    );
}

Ce hook est utile pour :

  • Vérifier le chemin actuel pour adapter l'affichage.
  • Accéder à des paramètres passés dans l'état de navigation.

Utiliser useNavigate pour naviguer dynamiquement

Le hook useNavigate remplace useHistory et permet de rediriger les utilisateurs ou de naviguer dynamiquement entre les routes.

import { useNavigate } from 'react-router-dom';

function NavigationExample() {
    const navigate = useNavigate();

    const handleGoToProfile = () => {
        navigate('/profile', { state: { from: 'homepage' } });
    };

    return (
        <div>
            <button onClick={handleGoToProfile}>
                Aller au profil
            </button>
        </div>
    );
}

Ce hook est utile pour :

  • Implémenter une redirection après une action réussie (connexion, formulaire soumis).
  • Passer des données à la route suivante via l'état.

Bonnes pratiques

  • Structurer les routes : Regroupez les routes dans un fichier dédié pour une meilleure lisibilité.
  • Utiliser les redirections : Pour gérer les routes obsolètes ou protéger des pages.
  • Charger les données dynamiquement : Combinez React Router avec des hooks comme useEffect pour récupérer les données nécessaires à chaque route.

Sources

Mots clés

JavaScript

🚀 Passez au niveau supérieur avec React !

Découvrez comment optimiser vos applications React et offrir des expériences utilisateur fluides grâce à des outils modernes comme React Router.

Contactez-moi pour un accompagnement personnalisé
Logo Redux Maîtrisez l'état de vos applications web avec Redux

C'est quoi Redux ? À quoi ça sert ? Apprenez en plus sur le gestionnaire d'état JavaScript. Comment fonctionne-t-il, et quels sont ses véritables avantages ?

Un ordinateur portable montrant des lignes de code Les 5S du TPM : Un Chemin Vers un Code Plus Propre

Découvrez comment les 5S, principes issus du Total Productive Maintenance (TPM), peuvent transformer votre code en le rendant plus propre, lisible et maintenable.

Homme montrant un post-it avec sur lequel il est écrit Node.js C'est quoi Node.js ? À quoi ça sert ? Tout ce que vous devez savoir

Découvrez ce qu'est Node.js, à quoi il sert, ses avantages, et comment commencer à l'utiliser pour créer des applications performantes.