Routage React
Le routage React est généralement implémenté à l'aide de la bibliothèque react-router, qui est une bibliothèque puissante pour mettre en œuvre le routage côté client dans les applications React. Voici une explication détaillée de l'utilisation de React Router dans React :
Installer React Router
Tout d'abord, vous devez installer le package react-router-dom, qui est le package utilisé pour implémenter le routage dans les environnements de navigateur.
npm install react-router-dom
Utilisation de base
Voici les étapes et un exemple de code pour configurer un routage de base à l'aide de React Router.
1. Créer des composants de route de base
Tout d'abord, créez quelques composants simples qui seront rendus par les routes.
Exemple
const Home = () => {
return <h2>Home</h2>;
};
export default Home;
// About.js
import React from 'react';
const About = () => {
return <h2>About</h2>;
};
export default About;
// Contact.js
import React from 'react';
const Contact = () => {
return <h2>Contact</h2>;
};
export default Contact;
2. Configurer les routes
Dans votre composant principal d'application, utilisez les composants de react-router-dom pour configurer les routes.
Exemple
import ReactDOM from 'react-dom/client';
import {
BrowserRouter as Router,
Routes,
Route,
Lien
} from 'react-router-dom';
import Home from './Home';
import About from './About';
import Contact from './Contact';
const App = () => {
return (
<Router>
<div>
<nav>
<ul>
<li>
<Link to="/">Accueil</Link>
</li>
<li>
<Link to="/about">À propos</Link>
</li>
<li>
<Link to="/contact">Contact</Link>
</li>
</ul>
</nav>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
<Route path="/contact" element={<Contact />} />
</Routes>
</div>
</Router>
);
};
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);
Routes imbriquées
React Router vous permet de créer des routes imbriquées, ce qui vous permet d'afficher davantage de routes dans un composant.
Exemple
import React from 'react';
import { Link, Outlet } from 'react-router-dom';
const Dashboard = () => {
return (
<div>
<h2>Dashboard</h2>
<nav>
<ul>
<li>
<Link to="profile">Profil</Link>
</li>
<li>
<Link to="settings">Paramètres</Link>
</li>
</ul>
</nav>
<Outlet />
</div>
);
};
export default Dashboard;
Exemple
import React from 'react';
const Profile = () => {
return <h2>Profile</h2>;
};
export default Profile;
Exemple
import React from 'react';
const Settings = () => {
return <h2>Settings</h2>;
};
export default Settings;
Configurez des routes imbriquées dans le composant principal de l'application :
Exemple
import ReactDOM from 'react-dom/client';
import {
BrowserRouter as Router,
Routes,
Route,
Lien
} from 'react-router-dom';
import Home from './Home';
import About from './About';
import Contact from './Contact';
import Dashboard from './Dashboard';
import Profile from './Profile';
import Settings from './Settings';
const App = () => {
return (
<Router>
<div>
<nav>
<ul>
<li>
<Link to="/">Accueil</Link>
</li>
<li>
<Link to="/about">À propos</Link>
</li>
<li>
<Link to="/contact">Contact</Link>
</li>
<li>
<Link to="/dashboard">Dashboard</Link>
</li>
</ul>
</nav>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
<Route path="/contact" element={<Contact />} />
<Route path="/dashboard" element={<Dashboard />}>
<Route path="profile" element={<Profile />} />
<Route path="settings" element={<Settings />} />
</Route>
</Routes>
</div>
</Router>
);
};
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);
Routes dynamiques
Vous pouvez inclure des paramètres dynamiques dans le chemin.
Exemple
import React from 'react';
import { useParams } from 'react-router-dom';
const User = () => {
const { userId } = useParams();
return <h2>ID utilisateur: {userId}</h2>;
};
export default User;
Configurez des routes dynamiques dans le composant principal de l'application :
Exemple
import ReactDOM from 'react-dom/client';
import {
BrowserRouter as Router,
Routes,
Route,
Lien
} from 'react-router-dom';
import Home from './Home';
import About from './About';
import Contact from './Contact';
import Dashboard from './Dashboard';
import Profile from './Profile';
import Settings from './Settings';
import User from './User';
const App = () => {
return (
<Router>
<div>
<nav>
<ul>
<li>
<Link to="/">Accueil</Link>
</li>
<li>
<Link to="/about">À propos</Link>
</li>
<li>
<Link to="/contact">Contact</Link>
</li>
<li>
<Link to="/dashboard">Dashboard</Link>
</li>
<li>
<Link to="/user/1">Utilisateur 1</Link>
</li>
<li>
<Link to="/user/2">Utilisateur 2</Link>
</li>
</ul>
</nav>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
<Route path="/contact" element={<Contact />} />
<Route path="/dashboard" element={<Dashboard />}>
<Route path="profile" element={<Profile />} />
<Route path="settings" element={<Settings />} />
</Route>
<Route path="/user/:userId" element={<User />} />
</Routes>
</div>
</Router>
);
};
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);
Page 404
Vous pouvez utiliser le composant Navigate fourni par React Router pour implémenter des redirections de page 404.
Exemple
import ReactDOM from 'react-dom/client';
import {
BrowserRouter as Router,
Routes,
Route,
Lien,
Naviguer
} from 'react-router-dom';
import Home from './Home';
import About from './About';
import Contact from './Contact';
import Dashboard from './Dashboard';
import Profile from './Profile';
import Settings from './Settings';
import User from './User';
const NotFound = () => {
return <h2>404 Page introuvable</h2>;
};
const App = () => {
return (
<Router>
<div>
<nav>
<ul>
<li>
<Link to="/">Accueil</Link>
</li>
<li>
<Link to="/about">À propos</Link>
</li>
<li>
<Link to="/contact">Contact</Link>
</li>
<li>
<Link to="/dashboard">Dashboard</Link>
</li>
<li>
<Link to="/user/1">Utilisateur 1</Link>
</li>
<li>
<Link to="/user/2">Utilisateur 2</Link>
</li>
</ul>
</nav>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
<Route path="/contact" element={<Contact />} />
<Route path="/dashboard" element={<Dashboard />}>
<Route path="profile" element={<Profile />} />
<Route path="settings" element={<Settings />} />
</Route>
<Route path="/user/:userId" element={<User />} />
<Chemin de route="*" élément={<Naviguer vers="/" remplacer />} />
</Routes>
</div>
</Router>
);
};
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);
Résumé
En utilisant React Router, vous pouvez facilement implémenter des fonctionnalités de routage dans les applications React, y compris le routage de base, le routage imbriqué, le routage dynamique et les pages 404, entre autres. De cette façon, vous pouvez créer une application monopage (SPA) puissante et conviviale.
Autres extensions