𝗟𝗮 𝗽𝗿𝗲𝗴𝘂𝗻𝘁𝗮 𝗾𝘂𝗲 𝗱𝗲𝗰𝗶𝗱𝗲 𝘁𝘂 𝘀𝘁𝗮𝗰𝗸 𝗱𝗲 𝗲𝘀𝘁𝗮𝗱𝗼
Deja de comparar Redux con React Query.
Es como preguntar si quieres un martillo o un destornillador antes de saber qué estás construyendo. Redux, React Query y Zustand resuelven problemas diferentes.
La verdadera decisión surge de una sola pregunta: ¿Quién es el dueño de la fuente de verdad de cada pieza de estado?
Tienes dos tipos de verdad.
- Verdad propia (Owned Truth) El cliente es la fuente. Esto incluye cosas como:
- ¿Está abierto el sidebar?
- ¿Cuál es el tema actual?
- ¿Qué paso de un formulario está activo? Este estado vive y muere según tus decisiones locales. No necesita volver a verificarse con un servidor.
- Verdad prestada (Borrowed Truth) La fuente reside en el servidor. El cliente solo mantiene un reflejo de esos datos. Estos datos cambian a tus espaldas. Tu trabajo es gestionar:
- Obsolescencia (Staleness)
- Invalidación
- Refetching
- Caché
La mayoría de los desarrolladores tienen dificultades porque usan una sola herramienta para ambos casos. Cuando intentas gestionar la verdad prestada en un reducer del lado del cliente, terminas reescribiendo React Query de forma deficiente. Escribes manualmente los estados de carga, el manejo de errores y el caché. Esto crea enormes cantidades de código innecesario.
Divídelos para ganar.
Usa React Query para la verdad prestada. Se encarga del difícil trabajo de sincronización. Usa Zustand para la verdad propia. Se encarga del almacenamiento de valores simples sin ceremonias.
No vuelques datos del servidor en Zustand. Mantén ese límite claro.
¿Qué pasa con Redux y Sagas? Las Sagas no son para la obtención de datos (data fetching). Son para orquestar procesos complejos a lo largo del tiempo. Úsalas si tu aplicación gestiona:
- Flujos concurrentes y cancelables.
- Streams de websockets en tiempo real.
- Máquinas de estado complejas.
Si usas React Query y tus Sagas no hacen nada, no las necesitas.
Hay una tercera vía: la unificación. RTK Query y Redux te permiten mantener todo en un único store. Esto te ofrece una instantánea única de toda tu aplicación. Esto hace que la depuración, el cierre de sesión y la persistencia offline sean mucho más fáciles.
Elige tu camino según tus necesidades:
- React Query + Zustand: Lo mejor para equipos pequeños que necesitan baja complejidad.
- Redux + Sagas: Lo mejor para dominios de alta concurrencia como aplicaciones de trading.
- Solo RTK: Lo mejor para grandes equipos empresariales que necesitan una única fuente de verdad.
Antes de elegir una herramienta, pregúntate si el estado necesita siquiera vivir en el cliente. Los Server Components están devolviendo gran parte de esta lógica al servidor.
Primero descubre quién es el dueño de la verdad. La herramienta vendrá después.