Réagir Routeur
Create React App n'inclut pas le routage de page.
React Router est la solution la plus populaire.
Ajouter un routeur React
Pour ajouter React Router dans votre application, exécutez-le dans le terminal à partir du répertoire racine de l'application :
npm i -D react-router-dom
Remarque : Ce didacticiel utilise React Router v6.
Si vous effectuez une mise à niveau à partir de la v5, vous devrez utiliser l'indicateur @latest :
npm i -D react-router-dom@latest
Structure des dossiers
Pour créer une application avec plusieurs itinéraires de page, commençons d'abord par la structure du fichier.
Dans le src
dossier, nous allons créer un dossier nommé
pages
avec plusieurs fichiers :
src\pages\
:
Layout.js
Home.js
Blogs.js
Contact.js
NoPage.js
Chaque fichier contiendra un composant React très basique.
Utilisation de base
Nous allons maintenant utiliser notre routeur dans notre index.js
fichier.
Exemple
Utilisez React Router pour router vers des pages basées sur l'URL :
index.js
:
import ReactDOM from "react-dom";
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Layout from "./pages/Layout";
import Home from "./pages/Home";
import Blogs from "./pages/Blogs";
import Contact from "./pages/Contact";
import NoPage from "./pages/NoPage";
export default function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Layout />}>
<Route index element={<Home />} />
<Route path="blogs" element={<Blogs />} />
<Route path="contact" element={<Contact />} />
<Route path="*" element={<NoPage />} />
</Route>
</Routes>
</BrowserRouter>
);
}
ReactDOM.render(<App />, document.getElementById("root"));
Exemple expliqué
Nous enveloppons d'abord notre contenu avec <BrowserRouter>
.
Ensuite, nous définissons notre <Routes>
. Une application peut avoir plusieurs <Routes>
. Notre exemple de base n'en utilise qu'un.
<Route>
s peuvent être imbriqués. Le premier <Route>
a un chemin d'accès /
et rend le Layout
composant.
Les s imbriqués <Route>
héritent et s'ajoutent à la route parent. Ainsi, le blogs
chemin est combiné avec le parent et devient
/blogs
.
La Home
route de composant n'a pas de chemin mais a un
index
attribut. Cela spécifie cette route comme route par défaut pour la route parente, qui est /
.
Définir le path
à *
agira comme un fourre-tout pour toutes les URL non définies. C'est parfait pour une page d'erreur 404.
Obtenir une certification!
95 $ S'INSCRIRE
Pages / Composants
Le Layout
composant a des
éléments <Outlet>
et <Link>
.
Le <Outlet>
rend l'itinéraire actuel sélectionné.
<Link>
est utilisé pour définir l'URL et garder une trace de l'historique de navigation.
Chaque fois que nous établirons un lien vers un chemin interne, nous utiliserons à la <Link>
place de <a href="">
.
La "route de mise en page" est un composant partagé qui insère un contenu commun sur toutes les pages, comme un menu de navigation.
Layout.js
:
import { Outlet, Link } from "react-router-dom";
const Layout = () => {
return (
<>
<nav>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/blogs">Blogs</Link>
</li>
<li>
<Link to="/contact">Contact</Link>
</li>
</ul>
</nav>
<Outlet />
</>
)
};
export default Layout;
Home.js
:
const Home = () => {
return <h1>Home</h1>;
};
export default Home;
Blogs.js
:
const Blogs = () => {
return <h1>Blog Articles</h1>;
};
export default Blogs;
Contact.js
:
const Contact = () => {
return <h1>Contact Me</h1>;
};
export default Contact;
NoPage.js
:
const NoPage = () => {
return <h1>404</h1>;
};
export default NoPage;