用途:Zustand v5 是面向 React 的轻量级全局状态管理库,基于 useSyncExternalStore 构建,要求 React 18+。适合客户端全局状态、持久化用户偏好、复杂多域 store、跨组件状态共享,以及非 React 的 vanilla 状态管理。服务端拉取且需缓存的数据、单组件状态或简单 props 传递场景不建议使用它。
主要能力:支持类型安全的 store;原子选择器可将重渲染降到最小;提供可组合中间件 persist、devtools、immer、subscribeWithSelector;支持按域拆分的 slices 模式;可用 createStore 配合 React Context 实现每请求独立 store,避免 SSR 数据泄漏。
必要用法:基础 store 用 create<T>()((set) => ({...})),TypeScript 下必须使用双括号;选择状态用 useStore(state => state.bears);选多个值用 useShallow(state => ({a, b})),需从 zustand/react/shallow 导入;持久化用 persist(fn, { name });devtools 用 devtools(fn, { name });中间件包裹顺序为 devtools(persist(fn));重置用 set(store.getInitialState());vanilla 场景从 zustand/vanilla 导入 createStore。
常见限制与误区:不要用单括号 create<T>(...);不要直接选择整个 state;useShallow 需从 zustand/react/shallow 导入;在 SSR 或 Next.js 中避免全局单例 store,应使用 StoreContext 模式;服务端状态交由 TanStack Query。资料未提供具体价格、平台或使用步骤以外的信息。