Valtio 是一个很轻量级的响应式状态管理库。valtio 让数据管理在 React 和原生 JS (Vanilla) 中变得更加简单的一个库,它类似于 Vue 的数据驱动视图的理念,使用外部状态代理去驱动 React 视图来更新。
一、状态管理库
dispatch流派(单向数据流-中心化管理):redux、zustand、dva等- 响应式流派(中心化管理):
mobx、valtio等 - 原子状态流派(原子组件化管理):
recoil、jotai等
值得一提的是:Jotai、Zustand、Valtio 这三个开源状态管理库都是出自一人之手。
zustand 德语 “状态”,jotai 日语 “状态”、valtio 芬兰语 “状态”。
作者叫做 Daishi Kato,他是日本东京人,是个全职开源作者。
二、Jotai、Zustand、Valtio 使用对比
- Zustand
1 | |
- Jotai:每个状态都是原子化,用法和原生的 useState 有点像
1 | |
- Valtio:和 Vue 的响应式类似,当数据发生变化的时候就驱动视图更新
1 | |
三、Valtio 状态管理最佳实践
- 创建一个
store.js文件
1 | |
- 在组件中使用
1 | |
useProxy 其实就是对取 useSnapshot() 或 store 数据的封装,这个 hook 也很简单,就是判断是渲染期间(渲染体内)就返回 useSnapshot() 的快照数据,非渲染期间(非渲染体内)就返回原始的 store 数据,和我们自己手写的是差不多的,只不过这个 hook 帮我们把这个过程封装了起来。
欢迎访问:天问博客
本文作者: Tiven
发布时间: 2023-10-13
最后更新: 2023-10-13
本文标题: React + valtio 响应式状态管理
本文链接: https://www.tiven.cn/p/b10a02ec/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!
发布时间: 2023-10-13
最后更新: 2023-10-13
本文标题: React + valtio 响应式状态管理
本文链接: https://www.tiven.cn/p/b10a02ec/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!


