
4.1 虚拟 DOM 与 React Element
虚拟 DOM 是「用普通 JS 对象描述 UI 结构」的一层抽象;React 通过比较新旧两棵对象树来算出最小 DOM 操作——它的价值是「可预测的更新模型 + 跨平台能力」,而不是「比直接操作 DOM 更快」。

虚拟 DOM 是「用普通 JS 对象描述 UI 结构」的一层抽象;React 通过比较新旧两棵对象树来算出最小 DOM 操作——它的价值是「可预测的更新模型 + 跨平台能力」,而不是「比直接操作 DOM 更快」。

持久化的难点不是「怎么存」而是「怎么安全地读回来」——因为「你存下去的代码」与「读回来的代码」之间隔着「用户几个月没打开、版本升了 5 次」,所以必须有「版本号 + 迁移链 + 读取时校验 + 失败时降级」这四件套。

压缩、裁剪、加水印、抠图、拼接都在本地完成。不限张数、不限次数,图片不会传到服务器。

跨标签页同步的技术选型是「BroadcastChannel 优先、storage 事件降级、SharedWorker 兜底」,而真正的难点不在「怎么发消息」,而在「回声去重、冲突解决、写放大、以及『只让一个标签页做后台任务』(Leader 选举)」。

有限状态机的价值是「用『显式的状态 + 合法的转移』替代『一堆布尔旗标』」——因为旗标能组合出大量非法状态(isLoading && isError && isSuccess),而状态机只允许穷举出的那几种状态;

Valtio 与 MobX 都属于「代理式响应式(Proxy-based reactivity)」——你「直接改对象」,框架通过「读取时自动追踪、写入时自动通知」算出「谁需要更新」;

Jotai 的模型是「自下而上的原子化状态」——atom 是最小状态单元,派生 atom 用「读取时自动追踪依赖」的方式自动建立依赖图,所以它不需要选择器、不需要 reducer、也不需要「把状态提到顶层」;

客户端状态(UI 状态、用户偏好、本地逻辑)和服务端状态(接口数据)在生命周期与需求上完全不同——后者应该交给 TanStack Query / SWR,而不是塞进 Redux/Zustand;把两类状态混在一起是 React 架构里最常见的错误之一。

Redux Toolkit(RTK)是官方推荐的 Redux 写法——用 configureStore 内置常用中间件、用 createSlice 同时生成 reducer 与 action(并内置 Immer 可直接「改」状态)、用 createAsyncThunk / RTK Query 处理异…

中间件是「在 dispatch 与 reducer 之间插入的一层」,用来处理「非普通对象」的 action(如函数、Promise)或加入横切逻辑(日志、埋点、持久化);它通过柯里化的函数签名 store => next => action => {} 串联成链。

Redux 用一个单一 store 保存整棵状态树,通过派发 action(描述发生了什么)、由纯函数 reducer 计算新状态来更新——整个流程是单向且可预测的。
最新评论
读过书不知道欧·亨利的人少。教科书上选文有
这小生活不错呀
不错,必须顶一下!
看着你还在坚持,很好
看来忙了也没时间更新博客了
NIce。学习了。。。。
网站不错!!!!
简洁实用,好文章!