原生React
- useEffect + useState 实现状态管理
缺点是: 缺乏一些高级特性
- 数据分页
- 数据流向
虚拟dom diff算法:
- 从根组件开始逐层递归比较,不会跨层级比较相似节点;出现不同会整个替换(整个销毁,整个重建);
jsx
// 旧结构
<div>
<ComponentA />
</div>
// 新结构 → ComponentA 会被卸载后重新挂载
<section>
<div>
<ComponentA />
</div>
</section>
- key优化
- 类型不同直接替换
使用zustand 或者 jotai
好处: zustand适合中小项目,有持久化,数据分组等等特性
可以执行分片,只使用需要的状态,而不会引起不必要的更新;
jotai 主要特性的原子化的状态管理,只执行最小化更新 -- 细粒度更新
请求状态 React Query,SWR
比如使用useRequest, 拥有分页,缓存错误处理,防抖节流,分页等等功能