Historia del Desarrollo de Zustand

This ad is not shown to multipass and full ticket holders
JS Nation
JSNation 2026
June 11 - 15, 2026
Amsterdam & Online
The main JavaScript conference of the year
Upcoming event
JSNation 2026
JSNation 2026
June 11 - 15, 2026. Amsterdam & Online
Learn more
Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

En esta charla, hablaré sobre cómo me uní al desarrollo de Zustand. Comenzó con otra biblioteca mía, que es similar a Zustand. Mi participación fue desde Zustand v3 y actualmente está en v4. La filosofía de Zustand es ser pequeño, y lo mejoramos manteniendo la filosofía. Finalmente, comparamos Zustand con Jotai, que es otra biblioteca de gestión de estado que desarrollo.

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

FAQ

Zestand es una biblioteca de gestión de estado para React, diseñada para proporcionar una tienda para el estado global con un enfoque menos dogmático y extensible. Se enfoca en un tamaño de paquete reducido y en mantener una estructura simple.

Zestand fue lanzado inicialmente en abril de 2019. Aunque Daishi Kato no estuvo involucrado en el desarrollo original, se unió al equipo en 2020 y tomó un papel activo en el desarrollo posterior.

Zestand es único en que no utiliza el contexto de React para la propagación del estado, a diferencia de muchas otras bibliotecas de gestión de estado que sí lo hacen. Esto le permite ser más eficiente en ciertos escenarios de uso.

La versión 4 de Zestand, lanzada con soporte para React 18, utiliza el gancho useSyncExternalStore. Además, la implementación fue casi completamente reescrita y los tipos de TypeScript fueron significativamente mejorados.

Zestand se centra en proporcionar una tienda con acciones y una única fuente de verdad para el estado, mientras que Jotai utiliza un modelo de átomos que representan piezas de estado que pueden ser derivadas unas de otras, enfocándose más en la abstracción del estado y el grafo de datos.

En futuras versiones principales, Zestand planea eliminar la compatibilidad con React 17 para avanzar y adaptarse a las nuevas características y mejoras de React.

Los colaboradores pueden ayudar mejorando la documentación, trabajando en middleware existente, mejorando los tipos de TypeScript y, en general, añadiendo pruebas para cubrir el comportamiento actual. Se desalienta la adición de nuevas características en la biblioteca principal, pero se anima a crear bibliotecas de terceros.

Daishi Kato aprendió no solo aspectos técnicos de la programación sino también sobre el crecimiento de la comunidad y la gestión eficaz de un proyecto de código abierto, además de explorar opciones para monetizar el trabajo en software de código abierto.

Daishi Kato
Daishi Kato
19 min
06 Jun, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Esta charla ofrece una visión general de la historia del desarrollo de Zestand, una biblioteca de gestión de estado para React, y la participación del orador en ella. También introduce Jotai, otra biblioteca de gestión de estado desarrollada por el orador, y la compara con Zestand. La charla destaca las características y objetivos únicos de ambas bibliotecas, así como los desafíos de monetizar el software de código abierto.
Available in English: Development History of Zustand

1. Introduction to Zestand

Short description:

Esta charla trata sobre la historia del desarrollo de Zestand y mi participación en él. Zestand es una biblioteca de gestión de estado para React. Soy Daishi Kato, un freelancer al que le gusta la programación y el software de código abierto. Zestand es uno de mis proyectos exitosos. Llamó la atención y se hizo popular. Los hooks de React me inspiraron a desarrollar varias bibliotecas, incluyendo Zestand.

Hola, esta charla trata sobre la historia del desarrollo de Zestand y cómo estuve involucrado en él. Por cierto, lo pronuncié Zestand, pero no está definido cómo deberíamos pronunciarlo. Podemos llamarlo como queramos.

Para aquellos que no lo saben, Zestand es una biblioteca de gestión de estado para React.

Para empezar, permítanme presentarme. Soy Daishi Kato. Soy un freelancer al que le gusta la programación, y especialmente el software de código abierto. Hay muchos trabajos de código abierto que he realizado. La mayoría comenzaron como experimentos. Algunos de ellos llamaron la atención y se convirtieron en proyectos bastante conocidos. Zestand es la biblioteca de la que hablamos hoy. Jyotai es otra biblioteca de gestión de estado sobre la cual di una charla anteriormente. Valusio es otra biblioteca más. Todas esas tres se desarrollaron con un equipo llamado Poimanderes. Esa última se llama Reactract, que es uno de mis grandes proyectos explorando los hooks de React. Hay muchas otras bibliotecas pequeñas. La mayoría de mi trabajo reciente es con hooks de React. Pero tengo un interés más amplio en JavaScript en general.

De todos modos, la charla de hoy es sobre Zestand. Zestand es uno de los proyectos exitosos. Es una biblioteca de gestión de estado, y hay tantas bibliotecas de este tipo por ahí. Debido a que hay tantas, hacer que la gente las conozca y se vuelvan populares es un gran desafío. Afortunadamente, Zestand ha llamado algo de atención hasta ahora. Es solo suerte, supongo. No estuve involucrado en el desarrollo original de Zestand, pero estaba haciendo algo muy similar en aquellos días. Fue en 2018. React anunció los hooks en React Conf 2018 en octubre. Fue una gran inspiración y desarrollé varias bibliotecas con hooks, algunas de las cuales han sido para la gestión de estado. Antes de los hooks, había desarrollado una biblioteca con el contexto de React, al igual que otros lo hicieron. Tomé el mismo enfoque y creé una versión con hooks de ella.

2. Development and Maintenance of Zastand

Short description:

Mientras desarrollaba Zastand, me di cuenta de que no necesitaba el contexto de React para el estado global. Lancé la versión inicial en abril de 2019, y ganó algunos usuarios. Zastand se destacó por no usar el contexto de React, a diferencia de otras bibliotecas de estado global. Me uní al equipo en agosto de 2020 para hacer Zastand más amigable con el renderizado concurrente. Después de la versión 2, Zastand no fue mantenido, así que me hice cargo y lancé la versión 3 con mejoras.

Mientras lo desarrollaba, sabía que no requiere el contexto de React porque el caso de uso es el estado global. Los usuarios nunca tendrán componentes proveedores anidados. De hecho, hice una versión sin contexto, pero no fue bien recibida por los usuarios en ese momento. Y el tiempo pasó.

Fue en abril de 2019 cuando se lanzó la versión inicial de Zastand. Todavía estaba en bruto, pero consiguió algunos usuarios. Con algunos colaboradores, la versión 1 fue lanzada en junio. Poco después, lo encontré en algún lugar. En ese momento, tenía una herramienta, un repositorio, que es para comparar varias bibliotecas de estado global. Fue construido para verificar el comportamiento del renderizado concurrente. La herramienta se utilizó para verificar mis bibliotecas y algunas otras bibliotecas populares. Así que también añadí Zastand allí. Zastand era único ya que no usaba el contexto de React en absoluto. Todos los demás usaban el contexto para la propagación del estado o el alcance de las tiendas. Creo que el contexto de React ha sido sobreutilizado para el estado global. A menos que uses proveedores de contexto múltiples veces en tu árbol de componentes, no es contextual. El estado global definido a nivel de módulo debería simplemente funcionar. Zastand fue un pionero en este enfoque. Estoy convencido de ello y reimplementé una de mis bibliotecas. Más tarde, escribí un detallado post en el blog sobre ello. De todos modos, así fue como conocí Zastand. Como dije, uno de mis repositorios para comparar varios estados globales en el renderizado concurrente.

Estaba interesado en hacer Zastand más amigable con el renderizado concurrente para el futuro de React. Me uní al equipo en agosto de 2020 y tomé el desarrollo de Zastand. Zastand había sido desarrollado activamente el año anterior y alcanzó la versión 2. Sin embargo, no fue realmente mantenido después de eso. Había una cierta cantidad de usuarios y pocos problemas abiertos, pero nadie se estaba ocupando de ellos. Mientras mi motivación era el renderizado concurrente, comencé a mantenerlo y resolver esos problemas. La v3 fue lanzada el mismo mes que comencé a trabajar en ello. Tuvo dos grandes mejoras, pero aparte de eso, es básicamente compatible con la versión anterior.