XSta
2023-10|Packages
An ultra-lightweight React state management solution查看源码
项目亮点
XSta
是一个超轻量(< 200 lines)的 React 状态管理库,它提供了与原生 useState
Hook 一致的状态管理接口,零学习、迁移成本,给你极致丝滑的 React 状态管理新体验。
- 🐦 麻雀虽小,五脏俱全 核心不到 200 行代码(包含换行和注释),提供了完备的 React 状态管理解决方案,生产环境可用。
- ✅ 让 React 状态管理变简单 只需将
useState
替换为useXState
,即可将组件内状态快速共享给其他父子、兄弟组件使用,就这么简单! - 💪 专注性能优化 内置状态选择器,确保各个组件只在其关注的状态改变时,才触发 re-render,轻松搞定复杂页面性能优化。
- 🧩 零学习、迁移成本 可与项目中其他已使用的状态管理库共存,轻松切换,迁移无忧。
幕后花絮
React 生态内的状态管理方案已经有很多了1,在过去的一些项目实践中,我尝试过许多状态管理工具,但感觉用起来都不是很称手:
- 有的要写很多模版代码,用起来很繁琐,不够灵活;
- 有的需要学习新的范式,使用时会多一些额外的心智负担。
实际上,状态管理的核心目标有两个:
- 实现跨组件的状态共享
- 状态更新时自动刷新依赖组件
只要满足这两点,所有的状态管理库都可视为是等价的。
XSta 是我根据过往的项目经验和业务实践,沉淀出的一种相对简易的状态管理范式。
它足够精简,源码不到 200 行,体积小到几乎可以忽略。
做加法容易,但是做减法却很难:
- 它通过 10% 的体积实现了 99% 的项目状态管理的需要。
- 它提供了与原生
useState
一致的接口,零学习成本。 - 它支持与其他状态管理库共存,零升级、迁移成本。
这种精简的背后,是一种高度的取舍,和对业务需求的深刻理解。
总的来说,如果你需要的是一个足够精简,使用方便(不需要复杂的模版代码,额外的学习成本和使用心智),并且久经考验,满足绝大多数项目的状态管理需要的状态管理库,那么 XSta 将会是一个不错的选择。
备注
-
比如:Redux、Dva、Zustand 和 Jotai 等 ↩