BTS SIO2D
  • Accueil
  • Connexion
16 décembre 2024 par Ivann Pena

Les bonnes pratiques de structuration des projets React

Les bonnes pratiques de structuration des projets React
16 décembre 2024 par Ivann Pena

Table des matières

Toggle
    • Introduction
    • 1. Créer des dossiers selon les fonctionnalités et non par type de fichier
      • Exemple de structure :
    • 2. Séparer les composants en composants fonctionnels et composants de présentation
      • Exemple :
  • {user.name}
    • 3. Utiliser les hooks React de manière cohérente
      • Bonnes pratiques :
    • 4. Utiliser un gestionnaire d'état centralisé (si nécessaire)
      • Bonnes pratiques pour la gestion d'état :
    • 5. Mettre en place un système de routes cohérent
      • Exemple d'organisation des routes :
    • 6. Gérer les styles de manière modulaire
    • 7. Optimiser la performance avec le code-splitting
      • Exemple avec React.lazy et Suspense :
    • 8. Écrire des tests unitaires et d'intégration
    • 9. Conclusion
    • Sources complémentaires :

Introduction

La structuration d'un projet React est essentielle pour garantir que l'application reste maintenable, évolutive et facile à comprendre. Une bonne organisation du code réduit les risques d'erreurs et facilite la collaboration entre les développeurs. Dans cette fiche, nous allons explorer les meilleures pratiques pour structurer un projet React de manière efficace.

1. Créer des dossiers selon les fonctionnalités et non par type de fichier

Il est important de structurer les dossiers par fonctionnalité et non par type de fichier. Par exemple, au lieu de créer des dossiers comme `components`, `services`, `utils`, il est préférable de les organiser selon les fonctionnalités, comme `user`, `auth`, `dashboard`, etc. Cela permet de regrouper tous les fichiers liés à une fonctionnalité dans un même dossier.

Exemple de structure :


    src/
    ├── auth/
    │   ├── Auth.js
    │   ├── authAPI.js
    │   └── authSlice.js
    ├── user/
    │   ├── UserProfile.js
    │   ├── UserList.js
    │   └── userAPI.js
    └── dashboard/
        ├── Dashboard.js
        └── dashboardUtils.js
    

2. Séparer les composants en composants fonctionnels et composants de présentation

Les composants React doivent être séparés en deux catégories : les composants "fonctionnels" et les composants "de présentation". Les composants fonctionnels gèrent la logique de l'application (par exemple, la gestion de l'état, les appels API) tandis que les composants de présentation sont responsables uniquement de l'affichage des données.

  • Composants fonctionnels: Gèrent l'état, les effets de bord (useEffect), la gestion des événements, etc.
  • Composants de présentation: Sont des composants "bêtes" qui ne gèrent aucune logique et ne sont responsables que de l'affichage des informations.

Exemple :


    // Composant fonctionnel
    const UserProfile = ({ userId }) => {
        const [user, setUser] = useState(null);

        useEffect(() => {
            fetchUserData(userId).then(setUser);
        }, [userId]);

        return user ?  : 

Loading...

; }; // Composant de présentation const UserDetails = ({ user }) => { return (

{user.name}

{user.email}

); };

3. Utiliser les hooks React de manière cohérente

Les hooks comme useState, useEffect, useContext, et useReducer permettent de gérer l'état et les effets dans les composants fonctionnels. Il est essentiel d'utiliser les hooks de manière cohérente pour maintenir la logique et l'état de l'application.

Bonnes pratiques :

  • Eviter l'utilisation excessive d'effets useEffect pour des tâches simples, préférez la gestion locale de l'état avec useState.
  • Ne pas mélanger les hooks React avec des bibliothèques externes de gestion d'état (comme Redux) de manière confuse. Utiliser chaque solution de manière appropriée.
  • Garder les hooks bien organisés et compréhensibles.

4. Utiliser un gestionnaire d'état centralisé (si nécessaire)

Pour les projets React de plus grande envergure, il peut être utile d'utiliser un gestionnaire d'état global, comme Redux ou React Context API, pour gérer l'état de l'application. Cependant, il est essentiel de ne pas en abuser, car une gestion d'état trop complexe peut rendre le code difficile à maintenir.

Bonnes pratiques pour la gestion d'état :

  • Utiliser Redux pour les applications avec un état global complexe, ou lorsque l'état doit être partagé entre de nombreux composants.
  • Utiliser Context API pour partager l'état global à travers un arbre de composants lorsque l'application est de taille modérée.
  • Ne pas abuser des gestionnaires d'état complexes si ce n’est pas nécessaire pour le projet.

5. Mettre en place un système de routes cohérent

Si l'application utilise des routes, il est recommandé d'utiliser une bibliothèque comme React Router pour gérer la navigation. Organiser les routes de manière claire et logique est essentiel pour la maintenabilité du code.

Exemple d'organisation des routes :


    src/
    ├── routes/
    │   ├── AuthRoutes.js
    │   ├── UserRoutes.js
    │   └── DashboardRoutes.js
    └── App.js
    

6. Gérer les styles de manière modulaire

Les styles peuvent être gérés de différentes manières dans React, comme en utilisant CSS Modules, styled-components, ou des solutions CSS-in-JS. Il est important de choisir une méthode et de l'utiliser de manière cohérente à travers tout le projet.

  • CSS Modules: Permet de définir des classes CSS localisées à un composant spécifique pour éviter les conflits de nommage.
  • Styled-components: Permet de lier les styles directement aux composants React via JavaScript.
  • Utilisation de TailwindCSS: Si le projet devient plus complexe, l’utilisation d'un framework comme TailwindCSS peut améliorer la gestion des styles.

7. Optimiser la performance avec le code-splitting

Pour améliorer les performances, surtout dans les grandes applications, il est important de diviser le code en morceaux plus petits grâce au code-splitting (séparation du code). Cela permet de ne charger que les fichiers nécessaires pour l'utilisateur au moment où il en a besoin.

Exemple avec React.lazy et Suspense :


    import React, { Suspense, lazy } from 'react';

    const Dashboard = lazy(() => import('./components/Dashboard'));

    const App = () => (
        Loading...
}> );

8. Écrire des tests unitaires et d'intégration

Il est essentiel d’écrire des tests unitaires et d’intégration pour les composants React afin de garantir leur bon fonctionnement. Utiliser des bibliothèques comme Jest pour les tests unitaires et React Testing Library pour tester les composants React.

9. Conclusion

En suivant ces bonnes pratiques de structuration des projets React, tu peux améliorer la maintenabilité, la performance et la lisibilité de ton code. Il est important de garder une structure claire et logique à mesure que l’application se développe. N’oublie pas que chaque projet peut avoir des besoins spécifiques, alors adapte ces pratiques à la taille et la complexité de ton application.

Sources complémentaires :

  • Documentation officielle React - JSX
  • Documentation officielle Redux
Article précédentServer-Side Rendering (SSR) avec Streaming dans ReactArticle suivant Les tendances React pour 2024

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

About The Blog

Nulla laoreet vestibulum turpis non finibus. Proin interdum a tortor sit amet mollis. Maecenas sollicitudin accumsan enim, ut aliquet risus.

Articles récents

projet flutter Forum28 avril 2025
Backup BDD Bash17 mars 2025
UE – TF1 se met à Unreal Engine ?17 mars 2025

Catégories

  • Article Angular Killian
  • Article Clément
  • Article Unreal Engine Hugo
  • Cybersécurité
  • IA
  • Non classé
  • Projet Flutter KHM
  • Projet Hugo
  • Stage Clément
  • Stage Hugo
  • Stage Killian P
  • TP Clément

Méta

  • Inscription
  • Connexion
  • Flux des publications
  • Flux des commentaires
  • Site de WordPress-FR

Étiquettes

Article Développer son projet professionnel Flutter Gérer son identité professionnelle Java Stage Symfony TP

Why Lander

Lander is a design prepared
especially for the free version
of Rife WordPress Theme.

You can use this for free.
Make your website today.
Get Started Now!

Contact

734 Blackwell Street
Anchorage, Alaska
info@domain.com
+33 (0) 101 0000
+33 (0) 102 0000
Mon. - Fri. 8AM - 6PM

Articles récents

projet flutter Forum28 avril 2025
Backup BDD Bash17 mars 2025
UE – TF1 se met à Unreal Engine ?17 mars 2025
Rife Wordpress Theme. Proudly Built By Apollo13