用途:在 React 应用中用 Zustand 构建类型安全的全局状态管理,支持 TypeScript、持久化、调试工具、切片模式与 Next.js SSR 水合处理。
主要能力:基础与 TypeScript store 创建;persist 中间件持久化到 localStorage;devtools 接入 Redux DevTools;slices 模式拆分状态;异步 action、派生值、重置 store、带参数选择器;vanilla store(脱离 React)、自定义中间件与 immer 可变更新;Next.js 水合处理。
必要用法:安装 npm install zustand。TypeScript 必须用双括号 create<T>()(),否则中间件类型推断失败。选择器只取基本类型,多值用 useShallow,避免在 selector 中新建对象导致无限渲染。persist 存储键需唯一,SSR 下用 _hasHydrated 标志避免水合不匹配。中间件组合顺序影响行为。
限制:Zustand 不用于服务端状态,应改用 TanStack Query;不要直接导出 store 实例,应导出 hook;不要直接修改 state。v5.0.10 修复了 persist 并发水合竞态,建议升级到该版本或更高。unstable_ssrSafe 为实验性 API,官方建议仍用 _hasHydrated 模式。
版本与依赖:zustand@5.0.10,React 18-19,TypeScript 5+。官方文档见 https://zustand.docs.pmnd.rs/ 与 https://github.com/pmndrs/zustand。