微信小程序7,全局数据共享
全局数据共享
全局数据共享(又叫做状态管理)是为了解决组件之间数据共享的问题。 在小程序中,可使用mobx-miniprogram配合mobx-miniprogram-bindings实现全局数据共享、
-
mobx-miniprogram用来创建Store实例对象 mobx-miniprogram-bindings用来把Store中的共享数据和方法,绑定到组件或页面中使用 安装相关的包
npm install --save mobx-miniprogram@4.13.2 mobx-miniprogram-bindings@1.2.1
仍需要先删除miniprogram_npm再进行构建 创建Store实例,在根目录创建store文件夹,再新建一个store.js文件,在这个文件中导入mobx-miniprogram这个包的observable,并且导出store,将共享的数据放进store中
import { observable} from mobx-miniprogram export const store = observable({ num1:1 })
store中的计算属性,这个值是只读的,不可以重新赋值
// 计算属性 get sum(){ return this.num1++ }
actions方法是专门用来修改store中的数据 首先导入import {observable,action} from mobx-miniprogram
updateNum:action(function(val){ this.num1 += val })
将Store中的成员绑定到页面中 在页面中导入
import { createStoreBindings} from mobx-miniprogram-bindings import { store} from ../store/store
onLoad(options) { this.storeBindings = createStoreBindings(this,{ store, fields:[num1], actions:[updateNum] }) },
最终的清理工作
onUnload() { this.storeBindings.destroyStoreBindings() },
使用仓库中的数据
<view> { {num1}} </view>
changeNum(){ this.updateNum(2) },
在组件中绑定store的数据
import { storeBindingsBehavior} from mobx-miniprogram-bindings import { store} from ../../store/store
behaviors:[storeBindingsBehavior], storeBindings:{ store, fields:{ num1:num1 }, actions:{ updateNum:updateNum } },
上一篇:
uniapp开发微信小程序-2.页面制作