小程序 – MobX 全局数据共享
什么是全局数据共享
全局数据共享(又叫做:状态管理)是为了解决组件之间数据共享的问题。
开发中常用的全局数据共享方案有:Vuex、Redux、MobX 等。
引入 MobX
在小程序中,可使用 mobx-miniprogram 配合 mobx-miniprogram-bindings 实现全局数据共享。其中:
lmobx-miniprogram 用来创建 Store 实例对象
mobx-miniprogram-bindings 用来把 Store 中的共享数据或方法,绑定到组件或页面中使用
在项目中运行如下的命令,安装 MobX 相关的包:
注意:MobX 相关的包安装完毕之后,记得删除 miniprogram_npm 目录后,重新构建 npm。
创建 Store 数据仓库
1.mobx-miniprogram 中按需引入 observable
和action
2.调用 observable
方法,内部传入一个对象参数,定义普通数据,定义计算属性需要在前面加上 get
修饰符
3.定义用于更改数据的 action
方法,需要使用 action()
传入函数,调用时传入的参数会被action()
中的传入函数接收
4.把 observable
导出供其它 js 调用
绑定到页面
1.页面 js 文件中,mobx-miniprogram-bindings 传入中按需传入 createStoreBindings
和 store
源数据文件
2.在onLoad
方法中,调用 createStoreBindings
分别传入两个属性,第一个属性是数据源 store
,第二个属性为一个对象,里面包含fields
用于定义需要用到那个数据,avtions
用于定义需要用到那个函数。定义名称不需要和数据源中的对应名称一致。
3.把 createStoreBindings
的函数存在 this.storeBindings
中以备后用。
4.在onUnload
中调用this.storeBindings.destoryStoreBindings()
以在页面关闭时取消绑定数据
页面上使用 store 数据
1.正常使用数据就可
2.调用函数时,可以传入 event
参数,会被 action
函数所接收
绑定到组件中
1.从 mobx-miniprogram-bindings 中按需导入 storeBindingsBehavor
和 store
数据源
2.在组件中,把 storeBindingsBehavor
引入到 behaviors
中.
3.设置属性 storeBindings
,传入三个参数,第一个参数是数据源 store
,第二个参数是 fields
,定义需要用到的数据名,其中定义数据名中,取得 store
数据源的方法有三种。第三个参数是需要调用的 action
.
在组件中使用 store
1.正常使用数据就可
2.调用函数时,可以传入 event
参数,会被 action
函数所接收
共有 0 条评论