
Páginas
Incluye los componentes de alto nivel definidos por las rutas de la aplicación. Importan más componentes de bajo nivel de la carpeta de módulos (más detalles abajo).Módulos
Cada módulo representa una función o un grupo de funciones, comprendiendo sus componentes específicos, estados y lógica operativa. Todos deberían seguir la estructura siguiente. Puedes anidar módulos dentro de módulos (denominados submódulos) y se aplicarán las mismas reglas.Contextos
Un contexto es una manera de pasar datos a través del árbol de componentes sin tener que pasar propiedades manualmente en cada nivel. Ver React Context para más detalles.GraphQL
Incluye fragmentos, consultas y mutaciones. Ver GraphQL para más detalles.- Fragmentos
- Consultas
- Mutaciones
Hooks
Ver Hooks para más detalles.Estados
Contiene la lógica de gestión de estado. RecoilJS maneja esto.- Selectores: Ver RecoilJS Selectors para más detalles.
Utilidades
Debería contener solo funciones puras reutilizables. De lo contrario, crea hooks personalizados en la carpetahooks.
Interfaz y dependencias
Contiene todos los componentes de interfaz de usuario reutilizables utilizados en la aplicación. Esta carpeta puede contener subcarpetas, comodatos, visualización, retroalimentación y entrada para tipos específicos de componentes. Cada componente debe ser autónomo y reutilizable, para que puedas usarlo en diferentes partes de la aplicación.
Al separar los componentes de la interfaz de usuario de otros componentes en la carpeta modules, es más fácil mantener un diseño consistente y realizar cambios en la interfaz de usuario sin afectar otras partes (lógica de negocio) del código base.
Interfaz y dependencias
Puedes importar otro código de módulo desde cualquier módulo excepto desde la carpetaui. Esto mantendrá su código fácil de probar.
Interno
Cada parte (hooks, estados, …) de un módulo puede tener una carpetainternal, que contiene partes que se usan solo dentro del módulo.