
Pages
Comprend les composants de haut niveau définis par les routes de l’application. Ils importent des composants plus bas niveau du dossier des modules (plus de détails ci-dessous).Modules
Chaque module représente une fonctionnalité ou un groupe de fonctionnalités, comprenant ses composants spécifiques, ses états, et sa logique opérationnelle. Ils doivent tous suivre la structure ci-dessous. Vous pouvez imbriquer des modules dans des modules (appelés sous-modules) et les mêmes règles s’appliqueront.Contextes
Un contexte est un moyen de transmettre des données à travers l’arborescence de composants sans avoir à transmettre les propriétés manuellement à chaque niveau. Voir React Context pour plus de détails.GraphQL
Comprend des fragments, des requêtes et des mutations. Voir GraphQL pour plus de détails.- Fragments
- Requêtes
- Mutations
Hooks
Voir Hooks pour plus de détails.États
Contient la logique de gestion des états. RecoilJS gère cela.- Sélecteurs : Voir RecoilJS Selectors pour plus de détails.
Utilitaires
Devrait juste contenir des fonctions pures réutilisables. Autrement, créez des hooks personnalisés dans le dossierhooks.
UI
Contient tous les composants d’interface utilisateur réutilisables utilisés dans l’application. Ce dossier peut contenir des sous-dossiers, commedata, display, feedback, et input pour des types de composants spécifiques. Chaque composant doit être autonome et réutilisable, de sorte que vous puissiez l’utiliser dans différentes parties de l’application.
En séparant les composants UI des autres composants dans le dossier modules, il est plus facile de maintenir un design cohérent et d’effectuer des changements de l’interface utilisateur sans affecter d’autres parties (logique métier) de la base de code.
Interface et dépendances
Vous pouvez importer le code d’autres modules depuis n’importe quel module, sauf pour le dossierui. Cela permettra de garder son code facile à tester.
Interne
Chaque partie (hooks, états, …) d’un module peut avoir un dossierinterne, qui contient des parties utilisées uniquement au sein du module.