1、首先安装MOBX

在项目所在目录下,右键选择【在外部终端窗口中打开】,运行:

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

成功之后,在微信开发者工具中点击【工具】-【构架npm】,到此安装工作完成。

2、将需要共享的数据放在一个store.js文件中,导入mobx-miniprogram,需要共享的数据有字段num1,num2,方法sum(),updateNum1,updateNum2,注意:需要更改共享数据的方法使用:action修饰

import {observable,action
} from 'mobx-miniprogram'
export const store = observable({num1: 1,num2: 2,get sum() {return this.num1 + this.num2},updateNum1: action(function (step) {this.num1 = this.num1 + step}),updateNum2: action(function (step) {this.num2 = this.num2 + step})
})

3、在页面中引用store

首先导入mobx-miniprogram-bindings

import {createStoreBindings} from 'mobx-miniprogram-bindings'
import {store} from '../../store/store'

在onLoad生命周期函数中

onLoad(options) {this.storeBindings = createStoreBindings(this,{store,fields:['num1','num2','sum'],actions:['updateNum1','updateNum2']})}

在onUnload生命周期函数中

onUnload() {this.storeBindings.detroyStoreBindings()}

4、页面上显示共享数据:

wxml文件:

<button bindtap="addNum1" data-step="{{1}}">+1</button>
<button bindtap="addNum2" data-step="{{1}}">+1</button>
<view>num1:{{num1}}+num2:{{num2}}={{sum}}</view>

在事件中就可以使用共享的方法:

 addNum1(e){console.log(e)this.updateNum1(e.target.dataset.step)}

如何在组件中使用共享数据呢?

在组件的js文件中导入mobx-miniprogram-bindings,然后在Component节点中声明数据。组件和上述页面引入mobx-miniprogram-bindings是不同的

import {storeBindingsBehavior} from 'mobx-miniprogram-bindings'
import {store} from '../store/store'
Component({behaviors:[storeBindingsBehavior],storeBindings:{store,fields:{num1:'num1',num2:'num2',sum:'sum'},actions:{updateNum1:'updateNum1',updateNum2:'updateNum2'}}
}

在组件中显示共享数据方式与页面显示数据方式相同,在此不再赘述。

微信小程序 全局数据共享 Mobx相关推荐

  1. 微信小程序-全局数据共享

    微信小程序-全局数据共享MobX 1.开发中常用的数据共享方案 ​ 为了解决组件之间的数据共享,开发中常用的数据共享方案有:Vuex/Redux/MobX等 2.小程序中全局数据共享方案-MobX ​ ...

  2. 微信小程序全局数据共享学习笔记

    在小程序中,可使用 mobx-miniprogram 配合 mobx-miniprogram-bindings 实现全局数据共享.其中: mobx-miniprogram 用来创建 Store 实例对 ...

  3. 微信小程序-------全局通信方案mobx

    微信小程序-------全局通信方案mobx 微信小程序本身并没有提供类似于vue中的vuex或者React里的Redux这样的全局通信方案,只在组件中有behaviors这样的属性共享机制,用起来也 ...

  4. 微信小程序----全局状态管理 (便于全局埋点等操作)

    说明 由于我是一个有着一颗玻璃心的博主,导致在2018年后博客很少更新.原因是由于我的分享并没有解决到部分人的问题,而导致被骂了.当时这颗玻璃心就碎了,所以这两年以来很是消极,博客很少更新.这里给那些 ...

  5. 逆战之微信小程序全局配置

    微信小程序之全局配置-1 小程序的配置分为全局配置.页面配置及sitemap 配置 全局配置 小程序根目录下的 app.json 文件用来对微信小程序进行全局配置.文件内容为一个 JSON 对象,有以 ...

  6. php小程序开发实例,微信小程序全局配置开发实例

    本文主要和大家分享微信小程序全局配置开发实例,主要以代码的形式和大家分享,希望能帮助到大家. 一.app.json 使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设 ...

  7. 微信小程序全局路由拦截

    前言 略 微信小程序全局路由拦截方法1 目前微信小程序没有全局路由拦截.要想实现全局路由拦截,需要自己进行扩充.具体参考这里:微信小程序–路由拦截器. 实现思路: 替换Page的参数对象的onShow ...

  8. 微信小程序 全局路由拦截

    1. 微信小程序 全局路由拦截 // utils/filter.js function loginCheck(pageObj) {if (pageObj.onLoad) {let _onLoad = ...

  9. 微信小程序全局配置文件app.json中window:backgroundColor“不生效”

    那些年我们一起踩过的坑~ 今天说一下微信小程序全局配置文件app.json中window的backgroundColor属性,设置之后发现没效果. 查了资料发现原来这个backgroundColor属 ...

最新文章

  1. Apache htaccess 重写假设文件存在!
  2. eclipse 将javaWeb项目转化成maven项目
  3. 云供应商安全评估:小心落入陷阱
  4. android 键盘遮盖输入框_Android软键盘挡住输入框的终极解决方案
  5. 前端学习(534):多列布局1
  6. gitee提交代码_git 版本控制,github和gitee
  7. DolphinDB配置
  8. MongoDB的安装和启动方法详解
  9. 如何将同一云服务下的虚拟机从经典部署模型迁移到 Azure Resource Manager
  10. Python数据结构与算法笔记(三):查找问题——列表查找
  11. exception java doc_在javadoc中,標簽@throws和@exception之間有什么區別?
  12. python—列表,元组,字典
  13. Java IO流复制文件拒绝访问的原因及解决方法
  14. 大一计算机论文_大学计算机论文
  15. 安卓手机怎么投屏台式计算机,怎么将手机投屏到台式电脑上
  16. 【服务器管理之远程桌面】
  17. fpga与asic的区别
  18. docx文档怎么排列图片_怎么把图片文字转换成word?
  19. WFP实现侧边栏导航菜单
  20. ArcGISPro制作辐射4风格地图

热门文章

  1. win7 win8.1搜索不到隐藏中文wifi 已添加隐藏wifi但是没显示
  2. 苹果屏幕录制没有声音_有没有简单实用的屏幕录制软件推荐?
  3. java 科学计数法位数_科学记数法android java
  4. 如何把华为数据分析项目写进简历
  5. 高德地图上画图!和3D绘制区域
  6. wincc 激活记录运行系统
  7. QSFP28 LR4单模光模块与其它100G光模块有什么区别
  8. linux ip黑名单,在线IP黑名单地址列表
  9. python Linux下的安装
  10. 软件(程序)编写通法