前言

在我们团队目前的业务中,随着移动端h5页面复杂度增加以及需要长期维护的项目增多,初期选择多页无数据管理的一些弊端就暴露出来。页面内多个轮询,消息监听、各种优化交互的loading态、倒计时,导致一个h5中,往往有几十个核心的状态,组件嵌套的层级也较多。代码往往也是开头十几个useState的定义,而这些state通过组件一层层传递下去,让后来的维护者,可以说是如履薄冰。

而在组内推行数据流管理时,大家往往会觉得,redux太重,而mobx、基于rxjs的状态流管理等工具又有学习成本,就很难整。

但是从维护角度来看,一次性的活动页面也就算了,多次反复修改的页面,后期维护成本非常高。

所以,花了点时间,用100行代码写了一个类redux的、生产环境完全可用的数据流管理工具,暂且称为 tinysm, 也就是tiny state manage的缩写。本文便是介绍其实现过程及用法。