Zustand初探
简介
Zustand(德文单词,意思是“状态”)是一个用于管理React应用状态的小型、轻量级库。与其他状态管理库相比(如Redux),Zustand更加简洁和直观,适合中小型应用或需求不那么复杂的项目。
Zustand的特点和优势:
- 简洁易用:Zustand API设计简洁,使得状态管理过程变得非常直观;
- 轻量级:Zustand的包体积非常小,不会显著增加应用的加载时间;
- 灵活:你可以根据需要创建全局状态或局部状态,不必按照特定的模式进行操作;
- 高效:Zustand在性能上很高效,只有在状态实际改变时才会触发组件的重新渲染。
基本使用
安装
1 | npm install zustand |
创建store
1 | import create from 'zustand' |
在组件中使用store
1 | import React from 'react'; |
这样,你就可以在组件中轻松地读取和更新 Zustand 管理的状态了。
对比MobX
我们先来看下MobX的使用方式:
1 | import { makeAutoObservable } from 'mobx'; |
我们可以注意到,在用到store的组件是需要用observer包起来的。mobx官方文档中推荐大家尽量使用小组件,因为observer组件会追踪它们使用的所有值,并且当它们中的任何一个改变时重新渲染。 所以你的组件越小,它们需要重新渲染产生的变化则越小;这意味着用户界面的更多部分具备彼此独立渲染的可能性。
比起redux,mobx要快很多,同时mobx也有很多高级用法,功能强大。对于大型项目来说,使用mobx是一个很好的选择,如果是中小型项目,不妨用zustand作为项目的状态管理,其性能更出色,代码简单,也更容易上手。
最佳实践
在Typescript中的使用
在Typescript中使用zustand时,声明store的方式可能有一些差异。在js中我们可以使用create(...)
来创建一个store;而ts中,则应该用create<T>()(...)
这种方式,注意一下多出来的这个括号。
那代码也就变成下面这样:
1 | import { create } from 'zustand' |
结合immer使用
- 标题: Zustand初探
- 作者: Daryl Saxton
- 创建于 : 2024-07-06 18:19:13
- 更新于 : 2024-07-30 22:26:18
- 链接: https://www.dylsxtn.com/2024/07/06/Zustand初探/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。