Releases: pmndrs/zustand
v5.0.1
This fixes shallow
function for some edge cases.
What's Changed
- fix(shallow): fallback map-like iterator comparison by @dai-shi in #2795
- fix(shallow): iterable-like insensitive keys order comparison (alternate implementation) by @dai-shi in #2821
New Contributors
- @legcy143 made their first contribution in #2799
- @kretajak made their first contribution in #2822
- @steaks made their first contribution in #2824
Full Changelog: v5.0.0...v5.0.1
v5.0.0
πππ Zustand v5 π»π»π»
TL;DR
- No new features
- Drop many old things
- Migration from v4 should be smooth.
Changes in v5
- Drop default exports
- Drop deprecated features
- Make React 18 the minimum required version
- Make use-sync-external-store a peer dependency (required for
createWithEqualityFn
anduseStoreWithEqualityFn
inzustand/traditional
) - Make TypeScript 4.5 the minimum required version
- Drop UMD/SystemJS support
- Organize entry points in the package.json
- Drop ES5 support
- Stricter types when setState's replace flag is set
- Persist middleware behavioral change
- Other small improvements (technically breaking changes)
Migration Guide
Read the migration guide carefully:
https://github.com/pmndrs/zustand/blob/main/docs/migrations/migrating-to-v5.md
Frequently Reported Issue
During the RC period, some users encountered the following infinite loop error:
Uncaught Error: Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.
This case was already a non-ideal behavior in v4 but appears more explicitly as an error in v5. While there are several ways to resolve this, using useShallow
often fixes the problem.
What's Changed
- v5 by @dai-shi in #2138
- Fix Immer type inference for
setState
by @chrisvander in #2696
New Contributors
- @abernier made their first contribution in #2674
- @tthallos made their first contribution in #2501
- @sagiereder made their first contribution in #2673
- @melutovich made their first contribution in #2692
- @rgksugan made their first contribution in #2695
- @Anuovec made their first contribution in #2708
- @EthanRBrown made their first contribution in #2717
- @mym0404 made their first contribution in #2730
- @87xie made their first contribution in #2745
- @f312213213 made their first contribution in #2761
- @DanThemes made their first contribution in #2764
- @chaficnajjar made their first contribution in #2770
- @goosewobbler made their first contribution in #2781
- @Amyssyko made their first contribution in #2784
- @MartinGamesCZ made their first contribution in #2785
Full Changelog: v4.5.5...v5.0.0
v5.0.0-rc.2
Hopefully, this will be the last RC, unless we have serious bug reports in #2741.
What's Changed
- chore: enable isolatedDeclarations by @dai-shi in #2738
- revert useShallow refactor in #2701 by @dai-shi in #2703
New Contributors
- @Anuovec made their first contribution in #2708
- @EthanRBrown made their first contribution in #2717
- @mym0404 made their first contribution in #2730
Full Changelog: v5.0.0-rc.1...v5.0.0-rc.2
v5.0.0-rc.1
This version includes some minor changes. Please report any issues if you find.
What's Changed
- Fix Immer type inference for
setState
by @chrisvander in #2696 - refactor useShallow by @dai-shi in #2701
New Contributors
- @sagiereder made their first contribution in #2673
- @melutovich made their first contribution in #2692
- @rgksugan made their first contribution in #2695
Full Changelog: v5.0.0-rc.0...v5.0.0-rc.1
v5.0.0-rc.0
Please see the migration guide and share your feedback.
What's Changed
New Contributors
Full Changelog: v4.5.5...v5.0.0-rc.0
v4.5.5
This improves the persist
middleware behavior for an edge case.
What's Changed
- fix(storage): avoid calling setItem with the state just retrieved by @double-thinker in #2678
- chore(deps): update dependencies by @dai-shi in #2680
New Contributors
- @alwalxed made their first contribution in #2634
- @YashChauhan858 made their first contribution in #2636
- @donutcube made their first contribution in #2650
- @vorant94 made their first contribution in #2661
- @jeppester made their first contribution in #2667
- @ryota-murakami made their first contribution in #2668
- @double-thinker made their first contribution in #2678
Full Changelog: v4.5.4...v4.5.5
v4.5.4
v4.5.3
It comes with a minor fix in types, but also some changes in configs.
What's Changed
New Contributors
- @elie made their first contribution in #2416
- @DawidWraga made their first contribution in #2435
- @dreamfliper made their first contribution in #2510
- @fredericoo made their first contribution in #2525
- @algoORgoal made their first contribution in #2530
- @StyleShit made their first contribution in #2550
- @Aberratio made their first contribution in #2558
- @prncss-xyz made their first contribution in #2564
- @sunil-sharma-999 made their first contribution in #2585
- @yasintz made their first contribution in #2598
- @L-Qun made their first contribution in #2612
- @holic made their first contribution in #2586
Full Changelog: v4.5.2...v4.5.3
v4.5.2
It should improve the compatibility with old browsers.
What's Changed
- refactor(shallow): Use for..of instead of C-style for by @onlined in #2374
- fix: return type of persist migrate function changed to PersistedState by @bobdepreziz in #2360
- build: target es2018 by @dai-shi in #2361
New Contributors
- @medyahyejoud made their first contribution in #2353
- @yankycranky made their first contribution in #2348
- @cheeZery made their first contribution in #2364
- @Cadienvan made their first contribution in #2378
- @bobdepreziz made their first contribution in #2360
Full Changelog: v4.5.1...v4.5.2
v4.5.1
People might have misunderstood with useStore
deprecation message. Hope this mitigates it.
What's Changed
- Relax types for
persist
middleware by @rafaeelaudibert in #2332 - chore: clarify deprecation message by @dai-shi in #2337
New Contributors
- @alexander-densley made their first contribution in #2321
- @rafaeelaudibert made their first contribution in #2332
Full Changelog: v4.5.0...v4.5.1