Skip to content

react状态库-zustand

🐻 Zustand 简介

Zustand 是由 Poimandres 团队(也是 Three.js 知名维护者之一) 开发的一个轻量级、无样板代码的 全局状态管理库。 Zustand 的核心理念是:最少的 API,最强的表达力

✅ 特点总结

特性说明
⚡️ 无 Provider不需要 <Provider> 包裹应用
🪶 极轻量gzipped 后约 1KB
🧠 使用简单类似 useState 的方式写 store
🔄 自动依赖追踪组件只在实际使用的状态变化时重新渲染
🧵 原生支持并发适配 React 18 的自动批处理和 concurrent 特性
🔗 支持中间件如持久化、订阅、调试等插件灵活扩展
⚛️ React Native 支持无差别可用,React/React Native 通用

⚙️ Zustand 的核心原理

Zustand 底层借助 Proxy 和 subscribe 实现 “精确依赖追踪”,只会重新渲染访问了特定字段的组件

✨ 组件更新机制

js
useStore((state) => state.bears)

每个组件只订阅所用到的 state 片段,不会因为 store 中无关字段变化而重新渲染,避免性能浪费。

🧪 Zustand 与 React 18

特性是否支持说明
自动批处理多个 set 调用合并为一次 render
并发模式支持兼容 startTransition, Suspense 等特性
严格模式兼容支持 React 18 的开发双调用机制
选择器渲染优化useStore(selector) 精细依赖跟踪

🔚 总结:什么时候选择 Zustand?

✅ 推荐使用 Zustand 的场景:

  • 小到中型应用
  • 不想引入复杂的 Redux 生态
  • 希望有清晰的 store 分离 + 组件自动优化
  • 想快速上手、写法简洁
  • 项目不需要跨组件通信以外的多中间件管控