评论

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

点赞 0
收藏
评论

2 个评论

  • JIang
    JIang
    08-21

    onLoad 设置 watcher 感觉可以直接包装 onLoad 调用了要比手动调用好点

    08-21
    赞同
    回复
  • 子不语
    子不语
    2019-10-14

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

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