Zustand 是一个轻量级的、无依赖的状态库,适用于 React 和函数式编程。它提供了一个简单、灵活的方式来管理应用程序的状态。本文就讲讲如何使用 zustand 搞定 react 中复杂状态管理,进而替代 redux 。

以 redux 为代表的这类单向数据流状态管理库,都是需要在最外层(根组件)包一个 Provider , Context 中的值都在 Provider 的作用域下有效,这样才能做到数据状态共享。 Zustand 则另辟蹊径,默认不需要 Provider,就想 Vue 中 pinia 状态管理库一样,直接声明一个 hooks 式的 useStore 后就可以在不同组件中进行调用,并且保持它们的状态共享和响应式更新。
Zustand 在德语中是 state 状态的意思
注意:
getState() 方法获取,否则获取的是初始化的 state 值。getState() 方法获取最新状态。适用于跨组件数据共享、数据监听操作。
数据监听需要使用 subscribeWithSelector 包裹,否则不能细粒度监听。
在 axios 或路由守卫中通常需要获取/设置全局的 token 和用户信息,使用 zustand 可以这样做:
参考文档:
欢迎访问:天问博客