在微信小程序上实现一个类似vuex的全局状态管理框架
vuex的实现是高度依赖于vue对数据的reative处理,所以如果想在小程序上实现像vuex一样的全局状态管理框架,我们需要将我们需要全局状态管理的数据实现观察。
这个项目只是作为自己的实验性项目,欢迎大家提出改进或者不足的地方。
原理
利用es6的proxy,将定义的state数据遍历进行代理,在数据变更时通知订阅者,进行update操作。
update操作实际上就是page内的setData,考虑到在数据量大的时候,setData可能会变得很慢,所以在update的时候,已经将要更新的数据转变为局部的数据,例如我们更改了state中的其中一条数据target.a.b = 2,最终执行的setData会是
this.setData({
[‘target.a.b’]: 2
})
onLoad 设置 watcher 感觉可以直接包装 onLoad 调用了要比手动调用好点
所以为什么不用uni-app或者mpvue