Implémentation des fonctionnalités de navigation React

JavaScriptBeginner
Pratiquer maintenant

Introduction

Dans ce projet, vous allez apprendre à implémenter des fonctionnalités de navigation dans une application React. Vous allez créer une application simple avec une barre de navigation et des pages que vous pouvez naviguer à l'aide de liens.

👀 Aperçu

aperçu du projet

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment configurer le projet et installer les dépendances
  • Comment ajouter des routes et des correspondants de routes pour activer la navigation des menus dans la barre de navigation
  • Comment ajouter la navigation de la liste de cartes vers les cartes individuelles

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Utiliser React Router pour gérer la navigation côté client
  • Créer des liens et naviguer entre différentes pages dans une application React
  • Passer des données entre les composants à l'aide de l'objet state dans React Router
Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 83%. Il a reçu un taux d'avis positifs de 86% de la part des apprenants.

Configurer le projet

Dans cette étape, vous allez apprendre à configurer le projet et à installer les dépendances nécessaires.

Ouvrez votre éditeur de code et accédez au répertoire du projet.

├── public
├── src
│   ├── App.css
│   ├── App.js
│   ├── components
│   │   ├── Card.js
│   │   ├── Cards.js
│   │   └── Home.js
│   ├── index.css
│   ├── index.js
│   ├── reportWebVitals.js
│   └── setupTests.js
├── package-lock.json
└── package.json

Ensuite, téléchargez les dépendances à l'aide de la commande npm install dans le terminal, attendez que les dépendances aient fini de se télécharger puis lancez le projet à l'aide de la commande npm start.

Une fois le projet démarré avec succès, cliquez sur "Web 8080" pour le prévisualiser dans votre navigateur.

✨ Vérifier la solution et pratiquer

Ajouter des routes et des correspondants de routes

Dans cette étape, vous allez apprendre à ajouter des routes et des correspondants de routes pour activer la navigation des menus dans la barre de navigation.

  1. Ouvrez le fichier src/index.js et importez les modules nécessaires :

    import React from "react";
    import ReactDOM from "react-dom/client";
    import "./index.css";
    import App from "./App";
    import reportWebVitals from "./reportWebVitals";
    import { BrowserRouter } from "react-router-dom";
  2. Entourez le composant App avec le composant BrowserRouter :

    root.render(
      <BrowserRouter>
        <App />
      </BrowserRouter>
    );
  3. Ouvrez le fichier src/App.js et importez les composants et modules nécessaires :

    import React from "react";
    import { Route, Switch, Link } from "react-router-dom";
    import { Home } from "./components/Home";
    import { Cards } from "./components/Cards";
    import { Card } from "./components/Card";
    import "./App.css";
  4. Ajoutez le menu de navigation et le composant Switch pour gérer les différentes routes :

    const App = () => {
      return (
        <div className="app">
          <header>
            <Link to="/" className="menu menu-1">
              page d'accueil
            </Link>
            <Link to="/cards" className="menu menu-2">
              page des cartes
            </Link>
          </header>
          <Switch>
            <Route path="/" exact component={Home} />
            <Route path="/cards" exact component={Cards} />
            <Route path="/cards/:id" component={Card} />
          </Switch>
        </div>
      );
    };

    Le composant Switch garantit qu'une seule route est affichée à la fois, et les composants Route définissent les différentes routes et les composants correspondants à afficher.

✨ Vérifier la solution et pratiquer

Dans cette étape, vous allez apprendre à ajouter du code pour passer de la page de la liste de cartes à la page de la carte individuelle.

  1. Ouvrez le fichier src/components/Cards.js et importez les modules nécessaires :

    import React from "react";
    import { Link } from "react-router-dom";
  2. Ajoutez le code pour afficher la liste de cartes avec des liens vers les pages des cartes individuelles :

    export const Cards = () => {
      const colors = ["#26547c", "#ef476f", "#ffd166", "#06d6a0"];
    
      return (
        <div className="page cards">
          {colors.map((c, idx) => {
            return (
              <Link
                key={idx}
                to={{
                  pathname: `/cards/${idx + 1}`,
                  state: { bgColor: c }
                }}
              >
                <div
                  className={`card card-${idx + 1}`}
                  style={{ backgroundColor: c }}
                >
                  Carte {idx + 1}
                </div>
              </Link>
            );
          })}
        </div>
      );
    };

    Le composant Link est utilisé pour créer des liens vers les pages des cartes individuelles, et la propriété to est utilisée pour spécifier le chemin et l'état à passer au composant Card.

  3. Ouvrez le fichier src/components/Card.js et importez les modules nécessaires :

    import React from "react";
    import { useParams, useLocation } from "react-router-dom";
  4. Ajoutez le code pour afficher la page de la carte individuelle :

    export const Card = () => {
      const { id } = useParams();
      const { state } = useLocation();
    
      return (
        <div
          className="page card-page"
          style={{ backgroundColor: state.bgColor }}
        >
          <p>Carte {id}</p>
        </div>
      );
    };

    Le hook useParams est utilisé pour récupérer le paramètre id de l'URL, et le hook useLocation est utilisé pour récupérer l'objet state qui a été passé à partir du composant Cards.

Maintenant, vous avez terminé le projet. Le résultat final est montré dans l'écran d'après. Cliquez sur la page des cartes pour accéder à la page de la liste de cartes, et cliquez sur chaque carte pour accéder à la page de la carte individuelle.

Navigation entre la liste de cartes et les cartes individuelles
✨ Vérifier la solution et pratiquer

Résumé

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.