zustand
5.0.16 · 22 Oct 2026MIT87.8M / weekRepositorynpmAtom feed
124 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
- 2.x
2.2.0
24 Oct 20192.1.0
11 Oct 2019Removed SubscribeOptions and UseStoreSubscribeOptions types.
Added Subscriber type.
Improve performance by consolidating subscribers sparse array.
Removed SubscribeOptions and UseStoreSubscribeOptions types.
Added Subscriber type.
Improve performance by consolidating subscribers sparse array.
Fix potential issue with concurrent mode.
2.0.0
9 Oct 2019Removed ESM and IIFE versions of middleware.js and shallow.js. Any imports of the ".cjs" files should be changed from "zustand/{name}.cjs" to just "zustand/{name}" as they are all CommonJS now (index.js still has different formats).
api.subscribehas a new function signature that removes the object wrapper:api.subscribe(listener, selector?, equalityFn?).StateListenertype has changed. An overloaded signature was added for better error handling.
Removed ESM and IIFE versions of middleware.js and shallow.js. Any imports of the ".cjs" files should be changed from "zustand/{name}.cjs" to just "zustand/{name}" as they are all CommonJS now (index.js still has different formats).
api.subscribehas a new function signature that removes the object wrapper:api.subscribe(listener, selector?, equalityFn?).StateListenertype has changed. An overloaded signature was added for better error handling.Subscribetype has changed. It uses the updatedStateListenertype.listenersare iterated in a different order than they were before. Parent to child rather than child to parent. It would be rare if this causes any issues.The automatic fix when passing an array as the second arg of
useStorewas removed.useStorewill throw an Uncaught TypeError if the second arg is an array.
- 1.x
- 0.2.x
- 0.1.x
- 0.0.x