Repolode
pmndrs

pmndrs/zustand

一个基于 Hook 的轻量 React 状态管理库,无需包裹 Provider。

可替代:Redux

Star
58,845
Fork
2,176
未关闭 Issue
8
最近提交
7天前

这是什么?

Zustand 是一个面向 React 的状态管理库,基于简化的 Flux 思想。使用一个函数即可创建 store,并以 Hook 的形式在组件中直接读取任意状态片段,无需用 Context Provider 包裹应用。

组件只会在自己所选取的状态发生变化时重新渲染。库中提供浅比较、自定义相等函数,以及不触发渲染的瞬时更新等能力。它也可以脱离 React 单独使用,通过 vanilla store 接口操作状态。

官方包含持久化、基于 Immer 的不可变更新、Redux 风格 reducer 以及 Redux DevTools 集成等中间件。项目使用 TypeScript 编写,可通过 npm 安装。

核心功能

  • 01以 Hook 形式创建 store,无需 Provider。
  • 02组件仅在所选状态变化时重新渲染。
  • 03支持浅比较和自定义相等函数。
  • 04提供持久化、Immer、Redux 风格和 devtools 中间件。
  • 05可通过 vanilla store 接口脱离 React 使用。

适用场景

  • 在 React 组件间共享应用状态,且样板代码极少。
  • 将用户偏好或会话数据持久化到 localStorage 或 sessionStorage。
  • 从 Redux 迁移,同时保留 reducer 风格的操作。
  • 管理频繁更新的状态,避免不必要的重新渲染。

快速上手

  1. 1

    从 npm 安装 zustand

    npm install zustand
  2. 2

    用 create 创建 store,并在组件中使用该 hook

标签

常见问题

zustand 是什么?
一个基于 Hook 的轻量 React 状态管理库,无需包裹 Provider。 Zustand 是一个面向 React 的状态管理库,基于简化的 Flux 思想。使用一个函数即可创建 store,并以 Hook 的形式在组件中直接读取任意状态片段,无需用 Context Provider 包裹应用。
zustand 可以免费使用吗?用的什么许可证?
zustand 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
zustand 还在维护吗?
活跃维护中。zustand 最近一次提交是在 2026年10月14日。
zustand 适合用来做什么?
在 React 组件间共享应用状态,且样板代码极少。 将用户偏好或会话数据持久化到 localStorage 或 sessionStorage。 从 Redux 迁移,同时保留 reducer 风格的操作。 管理频繁更新的状态,避免不必要的重新渲染。
zustand 怎么安装和运行?
从 npm 安装 zustand: npm install zustand 用 create 创建 store,并在组件中使用该 hook
在哪里获取 zustand?
源代码和安装说明在 GitHub 上:https://github.com/pmndrs/zustand

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目