Zustand

你可能是一路按顺序读过来的,也可能是根据自己的需要找到这一章的,但是无论如何,如果你在寻找一个非常简单易用的状态管理中间件,但是又苦于 Redux 和 MobX 有些复杂了,那么这一章所介绍的 Zustand 将会满足你的需求。

Zustand 是一款非常精炼小巧的状态管理中间件,它是基于不可变数据设计的,采用了 React 中的 Hook 作为其与组件整合的方法。虽然 Zustand 的体积很小,但是它基本上避免 React 状态管理中常见的几乎绝大部分陷阱,所以整体来说 Zustand 的稳定性还是非常不错的。

在 React 项目中使用 Zustand 只需要安装以下依赖即可。

npm install zustand
yarn add zustand

根据 Zustand 文档中的介绍,其相比 Redux 有以下优点。

  • 比 Redux 更加简单,而且不用过度思考状态的控制。
  • 充分采用 Hook 来控制和消费状态。
  • 不需要使用 Provider 或者 Context 来向项目中注入必需的内容。
  • 可以在不引起组件重新渲染的情况下更新状态。

而相比 React 原生的 Context,也有以下的优点。

  • 会减少更多的样板代码。
  • 可以只在状态更改发生的时候重新渲染组件。
  • 相比 Context,状态可以被更加集中的管理。
  • 所有状态的管理是基于动作的。