以 React 为主的开发过程中,用过主流的两大状态管理工具 Redux 和 Mobx。但在我使用它们时,逐渐地感觉到了一些不太好的地方:Redux 使用过程有点冗余和拖沓,而尽管 Redux 也有中间件,但 Redux 带来的收益和它官方说的一样:仅仅只是一个纯的状态容器而不是状态管理;而基于 Observable 的状态管理库 Mobx 则侵入性强,且丢失状态类型的原始性(被 Observable 实例化),以及因此而导致一系列限制与困扰。
所以,我期待有一个更好的状态管理库出现。我希望它基于 Mutable 结构,状态操作高效直接,而且不应破坏状态数据类型的原始性;同时它也支持 Immutable 输出,兼顾 Mutable 的有利于编程和操作;然后它应该是渐进式的,可以是简洁的,也能是强大的,不会因过多的繁琐冗余操作以及复杂概念而破坏编程乐趣。
因此,我试着构建一个这样状态管理库: iFlow。 https://github.com/unadlib/iflow
iFlow 支持特性
🎯支持普通 function 和 class - 它很简单,同时也可设计符合各种需求状态管理架构。
🏬Store 组合 - Store Tree 可以很容易共享操作 Store 节点。
⚡动态和热插拔 - 可自由插拔 State 和 Action。
💥支持异步 function 以及其他类型的 function - 可任意组合 Action 或由内部其他内部 Action 相互组合。
🚀强大的中间件 - 中间件可以拦截控制和处理全部的 State 变化和 Actions 运行。
🔥Store 支持 immutable - Store 是支持被处理成 immutable 的 Store。
iFlow 希望能为开发者解决在状态管理架构和设计上可能遇到的困扰,小型项目能够更简单轻量化,大型项目又能够高效地各种深度设计。
如果你对 iFlow 感兴趣的话,非常欢迎来尝试看看,同时也非常欢迎提交 PR 和 issue。
目前 iFlow 部分文档已提供,同时后续文档也将继续完善中。
如果感觉它还不错,特别欢迎给 iFlow 一个 star⭐️,谢谢鼓励哈!!!