State Wars: Evaluación Comparativa de Estrategias de Gestión de Estado en Aplicaciones React Pesadas en Datos

This ad is not shown to multipass and full ticket holders
React Summit
React Summit 2026
June 11 - 15, 2026
Amsterdam & Online
The biggest React conference worldwide
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit 2026
React Summit 2026
June 11 - 15, 2026. Amsterdam & Online
Learn more
Bookmark
Rate this content

¿Qué biblioteca de estado es la elección correcta para tu aplicación – Redux, MobX, Zustand, Jotai, o ningún gestor de estado en absoluto? En esta charla, los compararemos usando métricas reales en una aplicación realista y pesada en datos que visualiza grandes conjuntos de datos con gráficos de datos en vivo y renderizado 3D.

This talk has been presented at React Advanced 2025, check out the latest edition of this React Conference.

Elina Denisova
Elina Denisova
14 min
01 Dec, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Lina, desarrolladora front-end en Physics X, compara el rendimiento de las bibliotecas de gestión de estado. Desafíos de visualización de UI pesada en datos. Recoil reemplazado; explorando JotAi, Redux toolkit, Dustant, JotAm, Mubex. ¿La elección de la biblioteca impacta significativamente en el rendimiento real de la aplicación? Experimentos de medición de tiempos reales; análisis de tiempo seguro para el estado y tiempo de renderizado a través de bibliotecas con varios tamaños de carga útil. Enfoque en el rendimiento de Jotai, MobX, Recoil y RTK. Comparación de Recoil, Jotai, RTK, Redux y MobX en la gestión de estado. Pruebas de interacción del usuario para la propagación del estado y el resaltado a través de gráficos. Comparación de rendimiento de las bibliotecas de gestión de estado enfocándose en la renderización y experimentos de optimización con actualizaciones de gráficos. Bibliotecas comparadas por rendimiento en el almacenamiento de fechas y renderización de datos en gráficos. Las clasificaciones muestran Recoil, MobX, GeoTie alrededor de dos segundos, Zustand, FGK alrededor de cuatro segundos. Considera el ajuste de la biblioteca con tu estructura de datos y diseña la forma del estado y los límites de suscripción en consecuencia.

1. Analyzing State Management Library Performance

Short description:

Lina, desarrolladora front-end en Physics X, compara el rendimiento de las bibliotecas de gestión de estado. Desafíos de visualización de UI con muchos datos. Recoil reemplazado; explorando JotAi, Redux toolkit, Dustant, JotAm, Mubex. ¿La elección de la biblioteca impacta significativamente el rendimiento real de la aplicación?

Hola, soy Lina. Soy desarrolladora front-end en Physics X. Hoy les mostraré un experimento de aplicación de producción donde intercambié bibliotecas de gestión de estado y medí su rendimiento.

La pregunta es, ¿la elección de la biblioteca afecta significativamente el rendimiento, o las diferencias son lo suficientemente pequeñas como para que debamos priorizar otros parámetros? Elijo una de nuestras aplicaciones para experimentos. Optimizer es nuestra herramienta de ingeniería para ejecutar y explorar trabajos de optimización. Se conecta a nuestras bibliotecas internas de computación e IA, por lo que podemos definir objetivos, restricciones, parámetros, ejecutar experimentos y analizar los resultados todo en un solo lugar.

¿De dónde provienen todos estos datos para la visualización? Como entrada, tenemos una muestra con métricas, parámetros y geometría. Como salida, obtenemos muchos candidatos. En cada paso de un trabajo de optimización, podemos tener miles de candidatos, y puede haber miles de pasos. Almacenamos todos estos datos en una base de datos y los enviamos a la web a través de REST API para inspeccionarlos de diferentes maneras. Hay muchos datos, así que siempre estoy trabajando en visualizarlos claramente de una manera más rápida. En realidad, se ve así. UI pesada en datos, tablas de cuestionarios, gráficos, actualizaciones en vivo y 3D. Construimos esto el año pasado, y usamos Recoil para la gestión de estado. Era rápido, simple y permitía hasta este año. Desafortunadamente, Recoil fue archivado, así que tenemos que movernos.

Pero, ¿cómo decidimos a qué cambiar? Primera idea, JotAi. Modelos similares, migraciones fáciles de átomos y selectores a átomos y átomos derivados. Cambios mínimos de código. También usamos Redux toolkit en otra aplicación, así que el equipo lo conoce, y tiene un ecosistema fuerte y flujo predecible. Dustant es liviano con actualizaciones directas y selectores simples. Mubex ofrece estados reactivos y valores calculados con suscripciones granulares. En resumen, no teníamos caminos realistas. Así que ahora aquí las bibliotecas de gestión de estado que compararé. Dustant, pequeña tienda global con actualizaciones directas, Redux toolkit, tienda centralizada con flujo de acción-reductor, Recoil, estado basado en átomos con selector, JotAm, estado basado en átomos con datos derivados, Mubex estado reactivo que se sincroniza automáticamente con la UI. Todos ellos tienen diferentes internos, diferentes diseños y diferentes costos cuando están en funcionamiento y liberados. Pero la pregunta es, ¿esta diferencia realmente importa en una aplicación real? Uso la misma aplicación, mismas páginas, mismos componentes, mismos conjuntos de datos, mismas interacciones de UI. Solo intercambio integraciones de gestión de estado. Sin reescritura de arquitectura. Y debido a que esta aplicación fue originalmente escrita para Recoil, otras bibliotecas pueden encontrar patrones que no son perfectos para ellas.

2. Analyzing State Management Performance Metrics

Short description:

Experimentos de medición de tiempos reales; análisis de tiempo seguro para el estado y tiempo de renderizado en bibliotecas con varios tamaños de carga útil. Enfoque en el rendimiento de Jotai, MobX, Recoil y RTK.

Esa es la realidad en la mayoría de las migraciones reales. Así que en lugar de adivinar complejidades, decidí medir tiempos reales. Para los primeros experimentos, desactivé el desplazamiento infinito en nuestra lista de optimización y cargué exactamente cinco lotes. Cada siguiente lote contenía una optimización más grande al aumentar la cantidad de pasos en esta optimización. Mismos datos para cada biblioteca. Cada biblioteca se prueba más de 10 veces. Mediremos el tiempo seguro para el estado, el tiempo para actualizar el estado con nuevos datos, y la tendencia del tiempo. Tiempo para que los componentes de React se rendericen después de comenzar la actualización.

Y mediremos esto en una escala. Cómo crecen estos tiempos a medida que aumenta el tamaño de la carga útil a través de los lotes. ¿Cómo estamos midiendo el tiempo seguro para el estado? Justo antes de escribir en la tienda, comenzamos un temporizador. Guardamos el lote usando set optimization, y luego esperamos micro-tareas con await promise resolve. Después de eso, detenemos y calculamos el tiempo de guardado. Informamos el número de lote, tamaño de datos, biblioteca, y medimos los tiempos al servidor. ¿Cómo estamos midiendo el tiempo de renderizado? Envolvemos el contenedor de la tabla con el perfil de recoil, y en el callback de renderizado, usamos el tiempo de commit para calcular el tiempo de renderizado. Luego, enviamos la medición de renderizado para ese lote al servidor.

Veamos los resultados. Aquí, ejecuto exactamente la misma prueba 10 veces por biblioteca. Cada ejecución carga cinco lotes con cargas útiles crecientes. Y muestro tres cosas, tiempo de renderizado, tiempo seguro para el estado, y el tiempo total. Estos números dependen mucho de mi código y de qué tan bien conozco cada biblioteca. Así que, ese gran pico es probablemente culpa mía, no como un estándar. En la siguiente diapositiva, lo elimino y me enfoco en Jotai, MobX, Recoil y RTK. El primer lote siempre es el más lento, porque este es un momento en que el estado y la UI pasan de vacíos a datos reales. La tienda crea su estructura inicial, y la tabla construye su diseño por primera vez. Las cargas útiles aumentan, pero el rendimiento apenas cambia. Así que, la conclusión no es la transferencia de memoria. Es principalmente el trabajo de UI y suscripción en la primera actualización. Jotai mantiene los estados pequeños y por átomo. Solo computamos lo que leemos, lo que ayuda a ganar en tiempo de guardado.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Todo Más Allá de la Gestión de Estado en Tiendas con Pinia
Vue.js London Live 2021Vue.js London Live 2021
34 min
Todo Más Allá de la Gestión de Estado en Tiendas con Pinia
Top Content
State management is not limited to complex applications and transitioning to a store offers significant benefits. Pinia is a centralized state management solution compatible with Vue 2 and Vue 3, providing advanced devtools support and extensibility with plugins. The core API of Pinia is similar to Vuex, but with a less verbose version of stores and powerful plugins. Pinia allows for easy state inspection, error handling, and testing. It is recommended to create one file per store for better organization and Pinia offers a more efficient performance compared to V-rex.
Uso efectivo de useEffect
React Advanced 2022React Advanced 2022
30 min
Uso efectivo de useEffect
Top Content
Today's Talk explores the use of the useEffect hook in React development, covering topics such as fetching data, handling race conditions and cleanup, and optimizing performance. It also discusses the correct use of useEffect in React 18, the distinction between Activity Effects and Action Effects, and the potential misuse of useEffect. The Talk highlights the benefits of using useQuery or SWR for data fetching, the problems with using useEffect for initializing global singletons, and the use of state machines for handling effects. The speaker also recommends exploring the beta React docs and using tools like the stately.ai editor for visualizing state machines.
React Query: ¡Es hora de romper con tu "Estado Global"!
React Summit Remote Edition 2020React Summit Remote Edition 2020
30 min
React Query: ¡Es hora de romper con tu "Estado Global"!
Top Content
Global state management and the challenges of placing server state in global state are discussed. React Query is introduced as a solution for handling asynchronous server state. The Talk demonstrates the process of extracting logic into custom hooks and fixing issues with state and fetching logic. Optimistic updates with mutation are showcased, along with the benefits of using React Query for data fetching and mutations. The future of global state management is discussed, along with user feedback on React Query. The Talk concludes with an invitation to explore React Query for server state management.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.
Anunciando Starbeam: Reactividad Universal
JSNation 2022JSNation 2022
27 min
Anunciando Starbeam: Reactividad Universal
Starbeam is a library for building reactive user interfaces with JavaScript, similar to Svelte, Vue, and Ember. It provides a data structure and query feature for filtering and sorting. The useStarBeam function ensures JSX reconciliation only occurs when reactive dependencies change. Starbeam tracks every read and write operation to update the component accordingly. It can be used with React and other frameworks, and offers debugging tools and locale integration.
Pensando en React Query
React Summit 2023React Summit 2023
22 min
Pensando en React Query
Top Content
React Query is not a data fetching library, but an Asian state manager. It helps keep data up to date and manage agent life cycles efficiently. React Query provides fine-grained subscriptions and allows for adjusting stale time to control data fetching behavior. Defining stale time and managing dependencies are important aspects of working with React Query. Using the URL as a state manager and Zustand for managing filters in React Query can be powerful.

Workshops on related topic

Repensando el Estado del Servidor con React Query
React Summit 2020React Summit 2020
96 min
Repensando el Estado del Servidor con React Query
Top Content
Featured Workshop
Tanner Linsley
Tanner Linsley
La distinción entre el estado del servidor y el estado del cliente en nuestras aplicaciones puede ser un concepto nuevo para algunos, pero es muy importante entenderlo cuando se entrega una experiencia de usuario de primera calidad. El estado del servidor viene con problemas únicos que a menudo se cuelan en nuestras aplicaciones sorpresa como:
- Compartir datos entre aplicaciones- Caché y Persistencia- Deduplicación de Solicitudes- Actualizaciones en segundo plano- Gestión de Datos "Obsoletos"- Paginación y Recuperación Incremental- Memoria y Recolección de Basura- Actualizaciones Optimistas
Los gestores tradicionales de "Estado Global" pretenden que estos desafíos no existen y esto finalmente resulta en que los desarrolladores construyan sus propios intentos sobre la marcha para mitigarlos.
En esta masterclass, construiremos una aplicación que expone estos problemas, nos permite entenderlos mejor, y finalmente los convierte de desafíos a características usando una biblioteca diseñada para gestionar el estado del servidor llamada React Query.
Al final de la masterclass, tendrás una mejor comprensión del estado del servidor, el estado del cliente, la sincronización de datos asíncronos (un bocado, lo sé), y React Query.
Gestión del estado en React con Context y Hooks
React Summit Remote Edition 2021React Summit Remote Edition 2021
71 min
Gestión del estado en React con Context y Hooks
Workshop
Roy Derks
Roy Derks
Mucho ha cambiado en el mundo de la gestión del estado en React en los últimos años. Donde Redux solía ser la principal biblioteca para esto, la introducción de las API de Contexto y Hooks de React ha revolucionado las cosas. Ya no necesitas bibliotecas externas para manejar tanto el estado del componente como el estado global en tus aplicaciones. En este masterclass aprenderás los diferentes enfoques para la gestión del estado en la era post-Redux de React, ¡todos basados en Hooks! Y como bonificación, exploraremos dos próximas bibliotecas de gestión del estado en el ecosistema de React.