腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
视频
用户
沙龙
专栏
专区
综合排序
丨
最热优先
丨
最新优先
时间不限
原子化状态管理库
Jotai
,它和
Zustand
有啥区别?
但是
jotai
在介绍原子化思想时提到了这个: 可能你用过 redux、
zustand
这些状态管理库,
jotai
和它们是完全两种思路。 那
zustand
支持的中间件机制在
jotai
里怎么实现呢?
zustand
支持通过中间件来修改 get、set 函数: 比如在 set 的时候打印日志。 其实和
zustand
中间件修改 get、set 方法的原理是一样的,只不过 atom 本来就支持自定义 get、set 方法。 总结 今天我们学了状态管理库
jotai
,以及它的原子化的思路。
zustand
是所有 state 放在全局 store 里,然后用到的时候 selector 取需要的部分。
jotai
是每个 state 单独声明原子状态,用到的时候单独用或者组合用。 不管是状态、派生状态、异步修改状态、中间件等方面,
zustand
和
jotai
都是一样的。 区别只是一个是全局 store 里存储所有 state,一个是声明原子 state,然后组合。
神说要有光zxg
2024-04-17
1.4K
0
标签:
函数
异步
中间件
渲染
管理
jotai
使用
jotai
使用 快速使用 定义变量 import { atom } from '
jotai
' const countAtom = atom(0) const countryAtom = atom('Japan atom({ 'Dragon Ball': 1984, 'One Piece': 1997, Naruto: 1999 }) 复制代码 在页面中使用 import { useAtom } from '
jotai
themeColor')||'#1890ff') 复制代码 index.tsx import {themeColorAtom} from '@/store' import { useAtom } from '
jotai
官方例子 import { useAtom } from '
jotai
' import { atomWithStorage } from '
jotai
/utils' const darkModeAtom , RESET } from '
jotai
/utils' const textAtom = atomWithStorage('text', 'hello') const TextBox = () =
用户4792657
2022-07-06
678
0
标签:
typescript
编程算法
存储
2023再谈前端状态管理
目前比较常见的状态管理库有 Redux(包括基于 Redux 的 Dva、Icestore)、Mobx、
Zustand
、Recoil、
Jotai
、Valtio、Hox 等。 Mobx 作为往年热度仅次于 Redux 的状态管理库,位置正逐步有被
zustand
超越的趋势。recoil/
jotai
/valtio 作为这两年热门的新兴库热度也在逐步上升。 接下来我们要介绍 5 个 Hooks 时代的状态库,分别是 recoil、
zustand
、
jotai
、valtio、hox。
zustand
德语 "状态",
jotai
日语 "状态"、valtio 芬兰语 "状态"。
Zustand
vs
Jotai
Zustand
和
Jotai
之间有两个主要不同:
Zustand
是单一 store,
Jotai
由原子 atom 组合而成;
Zustand
的 store 存储在
zz_jesse
2023-08-21
2.9K
0
标签:
渲染
管理
模型
前端
数据
Jotai
实战(上)
早前,我们介绍了《从 Recoil 到
Jotai
》 的迁移。其实随着迁移的过程中,也有着一些实践性的好方法,这里做一个总结提炼。 文章中的代码地址:https://github.com/bigbigDreamer/
jotai
-BPs 大纲 atom 细粒度作用域控制 atom 懒请求 atom 本地缓存 atom 动态 key import { Provider } from '
jotai
' const Component: FC = ({ children }) => <Provider>{ children }</Provider 实现方案 store.ts import { atomFamily } from '
jotai
/utils'; import {WritableAtom, atom} from "
jotai
"; 好了,
Jotai
BPs 上篇 到这里就结束了。 我是 不换,如果写的不正确,欢迎评论区批评指正,如果对你有帮助,请点个小赞,赠人玫瑰,手有余香。我们下期再见。
不换
2024-04-30
497
0
标签:
迁移
atom
key
作用域
缓存
Zustand
用法记录
Zustand
可以做什么? CounterComponent.tsx├── stores/│ └── useCounterStore.ts└── index.tsx// store.tsimport create from '
zustand
使用对象更新状态import create from '
zustand
';// 定义状态类型interface BearState { bears: number; increasePopulation import create from '
zustand
';// 用户基本信息存储interface UserBasicInfo { name: string; age: number; npm install immerimport create from '
zustand
';import produce from 'immer';interface NestedState {
tonglei0429
2025-03-25
597
0
标签:
react
typescript
精读《
zustand
源码》
zustand
是一个非常时髦的状态管理库,也是 2021 年 Star 增长最快的 React 状态管理库。它的理念非常函数式,API 设计的很优雅,值得学习。 概述 首先介绍
zustand
的使用方法。 精读 其实大部分使用特性都在利用 React 语法,所以可以说 50% 的特性属于 React 通用特性,只是写在了
zustand
文档里,看上去像是
zustand
的特性,所以这个库真的挺会借力的 对
zustand
来说,便是定义在 vanilla.ts 文件的 createStore 了。 总结
zustand
是一个实现精巧的 React 数据流管理工具,自身框架无关的分层合理,中间件实现巧妙,值得学习。
黄子毅
2022-03-15
1.8K
0
标签:
react
redux
编程算法
api
typescript
React-全局状态管理的群魔乱舞
而接下来,我们来分析一下React中状态管理的新贵 Recoil[1]
Jotai
[2]
Zustand
[3] Valtio[4] 等库中所涉及的设计理念和心智模式。 更新不可变
Zustand
更新不可变 Valtio 更新可变 运行时性能重新渲染的优化 「手动优化」通常意味着创建订阅特定状态的选择器函数(Selector)。 库 描述 React-Redux 利用特定选择器函数,「手动优化」 Recoil 通过订阅原子的「半手动方式」
Jotai
通过订阅原子的「半手动方式」
Zustand
利用特定选择器函数,「手动优化」 库 描述 React-Redux 「手动」管理 Recoil 0.3.0版本后- 「自动」管理
Jotai
「自动」管理 - atoms作为键存储在WeakMap中
Zustand
「半自动」--API : https://
jotai
.org/ [3]
Zustand
: https://github.com/pmndrs/
zustand
[4] Valtio: https://github.com/
前端柒八九
2022-08-25
4.8K
0
标签:
redux
存储
react
api
https
Redux真的该换了吗?2025年React状态管理的残酷真相
Zustand
- 赢家。
Jotai
- 引入了"atoms"这种抽象概念,虽然强大但学习曲线陡峭。
Zustand
✅ - 开箱即用,自动订阅你访问的属性。
Zustand
- 由主流开源社区维护(pmndrs),活跃度高。作者同时也是
Jotai
的维护者,说明这是个可信赖的团队。 TanStack Query - 更新频繁,有赞助商支持,生态健康。 Q:
Zustand
能替代Redux吗? 对于共享状态的需求,是的。但
Zustand
是"随意型"的,这对小团队很好,对大团队可能造成代码风格混乱。所以选择时要考虑团队规模。
前端达人
2025-11-20
712
0
标签:
数据
react
redux
工具
管理
忘掉 Redux,拥抱 Zutand 和
Jotai
的全新世界
三、
Jotai
的独特优势 (一)原子化设计理念
Jotai
的原子化设计理念是其独特之处。在状态管理中,原子化意味着将状态拆分成最小的、独立的单元,即原子(Atoms)。 此外,
Jotai
还支持派生状态,开发者可以基于现有原子轻松派生出新的状态,满足复杂的计算和逻辑需求。 同时,
Jotai
也与其他库和工具具有良好的兼容性,可以与其他状态管理库或框架集成,为开发者提供了更多的灵活性和选择。 首先,使用 Zutand 创建一个存储购物车物品的状态: import create from '
zustand
'; const useCartStore = create((set) => ({ 实现用户登录状态管理 以用户登录状态的管理为例,使用
Jotai
来实现: import { atom } from '
jotai
'; const isLoggedInAtom = atom(false
井九
2024-10-12
669
0
标签:
开发者
异步
redux
管理
开发
从 Recoil 到
Jotai
(上)
Recoil VS
Jotai
参考:
Jotai
讨论区 VS Blog
Jotai
相比较 Recoil 主要有几个区别: atom 作为 key 比起 唯一string key,样板代码变少了、内存泄漏风险减少了 ; 包体积更小; API 更简单容易理解,可拔插、集成能力更优异; 维护者更积极,BUG & Feature 响应更快; 性质不同,一个是稳定性质一个是实验性质;
Jotai
新的 原子型 状态管理库的后备方案 ; 核心维护者是 Dai-shi,目前有 14.9k+ 星星,受众公司也蛮多; 聊到这里,咱们可以步入正题了,我准备从 原子型 状态的思想、recoil 到
jotai
的 API 迁移指南入题讲解。
jotai
自己手撸了一个 源码,借助 WeakMap 实现的。 ', default: { data: [] } })
jotai
import { atom } from '
jotai
'; const todosAtom = atom({ data:
不换
2024-04-30
539
0
标签:
import
内存泄漏
源码
渲染
迁移
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档