微信小程序全局数据共享

mobx-miniprogram和mobx-miniprogram-bindings实现全局数据共享

mobx-miniprogram用来创建Store实例对象

mobx-miniprogram-bindings用来把Store中的共享数据或方法,绑定到组件或页面中使用

安装MobX相关的包

npm install --save mobx-miniprogram@4.13.2 mobx-miniprogram-bindings@1.2.1

注意:MobX相关的包安装完毕之后,记得删除miniprogram_npm目录后,在选项中重新构建npm。

根目录创建store文件夹,添加store.js文件

store.js

//在这个JS文件中,专门创建Store的实例对象
import {action, observable} from "mobx-miniprogram"

export const store =  observable({
  //里面声明共享数据
  numA:1,
  numB:2,
  //读取
  get sum(){
    return this.numA+this.numB
  },
  //修改
  updateNum1:action(function(step){
    this.numA += step
  }
  ),
  updateNum2:action(function(step){
    this.numB += step
  }
  ),
})

绑定到页面中

//页面的.js文件
import{createStoreBindings } from'mobx-miniprogram-bindings'//绑定方法
import{store}from'../../store/store'//实例对象映射到当前页面

Page({
  onLoad:function(){//生命周期函数--监听页面加载
    //第一个参数this代表该页面实例,第二个参数「store,fields,actios」分别代表数据源,字段,方法
    //自定义属性storeBindings为createStoreBindings方法的返回值
    this.storeBindings = createStoreBindings(this,{
      store,
      fields:['numA','numB','sum'],
      actions:['updateNum1']
})
},
onUnload:function(){//生命周期函数--监听页面卸载
    //清理绑定的数据和方法
    this.storeBindings.destroyStoreBindings()
}

绑定到组件

//组件的.js文件
import{storeBindingBehavior} from'mobx-miniprogram-bindings'//绑定方法
import{store}from'../../store/store'//实例对象映射到当前组件

Compoent({
  behaviors:[storeBindingsBehavior],//通过storeBindingsBehavior来实现自动绑定
  storeBindings:{
    store,//指定要绑定的Store
    fields:{//指定要绑定的字段数据
     numA:()=>store.numA,//绑定字段的第一种方式
     numB:()=>store.numA,//绑定字段的第二种方式
     sum:'sum'           //绑定字段的第三种方式
    },
    actions:{//指定要绑定的方法
      updateNum2:"updateNum2"
    }
  },
})
  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

睡不着乌托托

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值