SuperAPI AI 工具集

zustand-5

前端与建站

查看项目

更新于 10-15 21:41

技能介绍

用途:在 React 中管理全局或共享状态时使用 Zustand 5,包括实现持久化、使用 store、以及需要在组件外访问状态时加载。

主要能力与模式:

  1. 基础类型化 store:用 create<State>()((set) => ...) 定义状态与动作。
  2. 选择器:用 useStore((s) => s.field) 只订阅所需字段;多字段用 useShallow 包裹对象选择器,避免引用变化导致重渲染。
  3. 持久化:create()(persist(..., { name: 'key' })),name 为 localStorage 键。
  4. 异步与加载/错误状态:在动作内用 async/await 调用 API,再 set 更新。
  5. 切片模式:按领域拆分 slice 函数,最后在 store.ts 中合并。
  6. Immer:create()(immer(...)) 允许直接修改状态。
  7. DevTools:create()(devtools(..., { name: 'Name' }))。
  8. 组件外访问:useStore.getState();订阅:useStore.subscribe(selector, callback)。

规则与限制:store 应按领域拆分(auth、cart、UI 等),避免单一无限增长的全局 store;始终用选择器订阅具体状态切片,订阅整个 store 会导致任意变化都重渲染;persist 只用于真正需要持久化的 store,过度持久化会在 schema 变更后产生陈旧状态 bug;动作必须定义在 create 回调内,不能作为接收 store 的外部函数;Zustand 5 用 useShallow 处理对象选择器。反模式包括选择整个 store、在 set 内直接写异步逻辑。资料未提供安装命令、版本要求、收费与平台信息。