Introduction au Routing

Jusqu'à présent, nos applications React étaient des Single Page Apps (SPA) avec une seule "page". Il est temps de créer des applications multi-pages !

Qu'est-ce que le Routing ?

Le routing permet de mapper des URLs à des composants React.

URL                      →    Composant affiché
/                        →    <Home />
/about                   →    <About />
/products                →    <ProductList />
/products/123            →    <ProductDetail id={123} />
/contact                 →    <Contact />

Single Page App (SPA)

Même si on parle de "pages", une SPA React ne recharge jamais le navigateur.

Le routing JavaScript change le contenu affiché sans rechargement !

Avantages :

  • Navigation instantanée
  • Pas de perte d'état entre les pages

Pourquoi Utiliser le Routing ?

1. Navigation Intuitive

Les utilisateurs s'attendent à avoir une URL par page.

javascript
// ❌ Sans routing : tout sur une seule page
function App() {
  const [page, setPage] = useState('home');

  return (
    <div>
      <button onClick={() => setPage('home')}>Home</button>
      <button onClick={() => setPage('about')}>About</button>

      {page === 'home' && <Home />}
      {page === 'about' && <About />}
    </div>
  );
}

// ✅ Avec routing : chaque page a une URL
// / → Home
// /about → About

Problèmes sans routing :

  • Pas de bouton "Retour" du navigateur
  • Impossible de bookmarker une page
  • Impossible de partager un lien direct
  • Pas d'historique de navigation

Quel est le principal problème d'une SPA sans routing ?

2. URLs Bookmarkables

javascript
// ✅ Avec routing
https://monsite.com/products/123

// L'utilisateur peut :
// - Bookmarker cette page
// - Partager le lien
// - Revenir directement à ce produit

3. Historique du Navigateur

Le routing s'intègre avec l'historique du navigateur :

User visite :
  / → Ajoute à l'historique
  /about → Ajoute à l'historique
  /contact → Ajoute à l'historique

User clique "Retour" :
  /contact → /about → / ✅ Fonctionne !

4. SEO (Référencement)

Chaque page a une URL distincte, ce qui permet aux moteurs de recherche de les indexer.

javascript
// ✅ Bon pour le SEO
https://blog.com/articles/apprendre-react
https://blog.com/articles/hooks-useeffect
https://blog.com/contact

// ❌ Mauvais pour le SEO
https://blog.com/ (tout sur une page)

React Router : Une Solution Populaire

React Router est l'une des librairies de routing les plus populaires pour React. D'autres solutions existent (TanStack Router, Wouter, etc.), mais React Router reste très largement utilisée et bien documentée.

Les Outils Principaux

React Router nous fournit plusieurs composants pour gérer le routing :

  • BrowserRouter → Active le routing dans l'application
  • Routes et Route → Définissent quelle URL affiche quel composant
  • Link → Permet de naviguer entre les pages sans rechargement

Exemple conceptuel :

URL: /about    →  React Router  →  Affiche <About />
URL: /contact  →  React Router  →  Affiche <Contact />

Nous allons voir comment utiliser ces outils en pratique dans la page suivante.

Cas d'Usage du Routing

Type d'AppExemple de RoutesUse Case
Blog/, /posts, /posts/123Articles, détails
E-commerce/, /products, /products/abc, /cartCatalogue, produit, panier
Dashboard/dashboard, /profile, /settingsSections admin
Documentation/docs/intro, /docs/api, /docs/faqGuide utilisateur
Portfolio/, /projects, /projects/xyz, /contactProjets, détail

Récapitulatif

Comprendre, pas mémoriser

Ce qu'il faut retenir :

  • Routing → associer des URLs à des composants
  • SPA → navigation sans rechargement de page
  • React Router → librairie populaire pour gérer le routing
  • Avantages → bouton retour, bookmarks, partage de liens, SEO

La page suivante vous montrera comment mettre tout cela en pratique avec le code.

Prochaine Étape

Maintenant que vous comprenez pourquoi utiliser le routing, passons à la pratique : créer des routes, naviguer, et gérer les layouts !