评论

在小程序上实现一个类似vuex的全局管理框架

在小程序上实现一个类似vuex的全局管理框架

在微信小程序上实现一个类似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
})

仓库地址:https://github.com/alanleung04/wx_store

最后一次编辑于  10-14  
点赞 0
收藏
评论

1 个评论

  • 子不语
    子不语
    10-14

    所以为什么不用uni-app或者mpvue

    10-14
    赞同
    回复 5
    • alan🧐
      alan🧐
      10-14
      就自己捣鼓捣鼓,加深下对proxy的理解而已,所以就是实验性嘛。加上公司的太多的老旧项目,都是原生小程序写的,迁移到mpvue成本太高了
      10-14
      回复
    • 子不语
      子不语
      10-14回复alan🧐
      好的,加油~
      10-14
      回复
    • 十年雪落i
      十年雪落i
      10-31
      mpvue的开发体验有点差。只写微信小程序,觉得还是原生好用一些
      10-31
      回复
    • 家里的土豆子不多了
      家里的土豆子不多了
      11-25
      uniapp那种垃圾东西有啥可用的
      11-25
      回复
    • 陈式坚
      陈式坚
      11-28
      proxy还是不要用了 编译后部分android还是不支持
      11-28
      回复