Configuración de Store
Esta página cubre cómo configurar tu store de Redux, configurar hooks tipados y organizar la estructura del proyecto.
Estructura de carpetas
Los proyectos DEBEN seguir esta estructura para consistencia y mantenibilidad:
src/
app/
store.ts # Configuración del store
hooks.ts # Hooks tipados (useAppDispatch/useAppSelector)
shared/
types/ # DTOs (API), modelos de dominio, mappers
utils/ # Utilidades compartidas
services/
client.ts # Cliente base de RTK Query
baseQuery.ts # Consulta base con auth/chainId/retry
features/
user/
user.client.ts # Endpoints de RTK Query
user.slice.ts # Slice de estado de la UI
user.selectors.ts # Selectores memoizados
__tests__/ # Tests
land/
land.client.ts
land.slice.ts
land.selectors.ts
credits/
credits.client.ts
credits.slice.ts
credits.selectors.tsPrincipios de organización de carpetas
Basado en funcionalidades - Agrupar por dominio de negocio, no por rol técnico
Co-ubicación - Mantener el código relacionado junto
Separación clara - Distinguir entre datos remotos (
.client.ts) y estado local (.slice.ts)
Configuración del store
El store DEBE configurarse con el configureStore de RTK e incluir todo el middleware necesario.
Configuración básica del store
Opciones de configuración
Comprobación de serializabilidad
El serializableCheck el middleware valida que todo el estado sea serializable. Configúralo para ignorar excepciones conocidas:
Nunca deshabilitar serializableCheck completamente. En su lugar, configura excepciones y mantiene datos no serializables fuera de Redux.
Dev Tools
Habilita Redux DevTools en desarrollo para depuración:
Para depuración en producción (si es necesario), usa una configuración específica:
Hooks tipados
Crea versiones tipadas de useDispatch y useSelector para mejor inferencia de tipos y experiencia de desarrollo.
Configuración de hooks
Uso en componentes
Beneficios de los hooks tipados
Autocompletado - IntelliSense completo para la forma del estado
Seguridad de tipos - Capturar errores en tiempo de compilación
Refactorización - Renombrar propiedades de estado con confianza
Menos código repetitivo - No es necesario especificar
RootStaterepetidamente
Configuración del Provider
Envuelve tu app con el Provider de Redux:
Next.js App Router
Next.js Pages Router
React (Vite/CRA)
Configuración de entorno
Configura opciones específicas por entorno:
Definiciones de tipos
Crea definiciones de tipos compartidas para consistencia:
Múltiples instancias del store
Para testing o micro-frontends, puede que necesites múltiples instancias del store:
Buenas prácticas
1. Store único
Siempre usa una única instancia de store por aplicación:
2. Carga perezosa de reducers
Para code splitting, inyecta reducers dinámicamente:
3. Hot Module Replacement
Habilita HMR para reducers en desarrollo:
4. Persistencia de estado
Al usar redux-persist, configúralo con cuidado:
Siguientes pasos
Aprende sobre RTK Query para la obtención de datos
Entender Gestión de Estado para estado local
Revisar Patrones de Componentes para ejemplos de uso
Última actualización