状态管理本应如此简单

2021年520前夕。近一年来主要都在做业务,不过对不断提升Coding质量与速度的追求和思考一直没停过。机缘巧合之下,有幸着重花时间完善了一套稳定、易用的状态管理方案。

作者在工作历程中,由最初用redux,然后到用vuex,再到实验mobx、dva、react hooks甚至是自研工具,最后回归redux。

在此期间,一直在探寻简单易用,并且有完整类型提示的方案。就是当我们输入一两个关键字,IDE自动弹出模型对应dispatch方法,再输入空字符串'',自动提示可能要调用的方法等。日常要写太多状态管理代码,完全没必要敲很多重复内容。

那么重新写一个状态管理库?

redux已经很好用,只是代码略微繁琐,为何要重新写?基于redux封装是否可行?

那是否要集成其他路由、模块化加载和网络请求等模块,让用户通过这个工具做大多数事?

这其实是很多集成式框架做的事。但状态管理本身就是单独一个模块,没必要和其他模块耦合在一起。模块化对于项目未来局部升级和改造要远方便于集成式。

既然讲到了类型推导提示,那么是否只有TypeScript项目才能完美支持?

当然很多类型都是借助TypeScript定义,但如今利用JSDoc注释类型写法也能让JS项目支持类型提示和推导。

是否能兼容已有项目?

只要遵循相应规则,正常情况下都能兼容。

卖了那么久关子,接下来放出项目地址:

由于政策原因,项目无法开源。但是方案概念可以大致讲下: 1. 使用状态模型model管理状态 2. 状态模型包含原始状态state和更新状态方法methods 3. 所有状态和方法都支持类型推导提示

感谢你的阅读。欢迎通过微信(扫描下方二维码)或Github订阅我的博客。

微信公众号:苏溪云的博客

发布时间: 2021/5/19
分类: Technology/FrontEnd/React
作者版权所有,转载请注明出处,禁止商业转载
版权 © 2017-2021苏溪云保留所有权利