1.1、什么是全局数据共享

全局数据共享(又叫做:状态管理)是为了解决组件之间数据共享的问题。开发中常用的全局数据共享方案有:Vuex、Redux、MobX等。

1.2、小程序中的全局数据共享方案

在小程序中,可使用 mobx-miniprogram 配合 mobx_miniprogram_bindings 实现全局数据共享。其中:

  • mobx-miniprogram 用来创建 Store 实例对象
  • mobx_miniprogram_bindings 用来把 Store 中的共享数据或方法,绑定到组件或页面中使用

Mobx

2.1、安装 Mobx 相关的包

在项目中运行如下的命令,安装 Mobx 相关的包:

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

注意:Mobx相关的包安装完毕之后,记得删除 miniprogram_npm目录后,重新构建 npm

2.2、创建 Mobx 的 Store 实例

import { observable,action } from 'mobx-miniprogram'export const store = observable({//数据字段numA:1,numB:2,//计算属性get sum(){return this.numA + this.numB},//actions方法,用来修改 store 中的数据updateNum1:action(function(step){this.numA += step}),updateNum2:action(function(step){this.numB += step})
})

2.3、将 Store 中的成员绑定到页面中

//页面的.js文件
import {createStoreBindings} from 'mobx-miniprogram-bindings'
import {store} from '../../store/store'Page({onLoad:function(){//生命周期函数 -- 监听页面加载this.storeBindings = createStoreBindings(this,{store,fields:['numA','numB','sum'],actions:['updateNum1']})},onUnload:function(){//生命周期函数 -- 监听页面卸载this.storeBindings.destroyStoreBindings()}
})

2.4、在页面上使用 Store 中的成员

//页面的.wxml结构
<view>{{numA}}+{{numB}}={{sum}}</view>
<button type="primary" bindtap="btnHandler1" data-step="{{1}}">numA + 1
</button>
<button type="primary" bindtap="btnHandler1" data-step="{{-1}}">numA - 1
</button>//按钮 tap 事件的处理函数
btnHandler1(e){this.updateNum1(e.target,dataset.step)
}

2.5、将Store中的成员绑定到组件中

import {storeBindingsBehavior} from 'mobx-miniprogram-bindings'
import {store} from '../../store/store'Component({//通过 storeBindingsBehavior 来实现自动绑定behaviors:[storeBindingsBehavior],storeBindings:{//指定要绑定的Storestore,//指定要绑定的字段数据fields:{//绑定字段的第 1 种方式numA:() => store.numA,//绑定字段的第 2 种方式numB:(store) => store.numB,//绑定字段的第 3 种方式sum:sum},//指定要绑定的方法actions:{updateNum2:'updateNum2'}}
}) 

2.6、在组件中使用 Store 中的成员

//组件的.wxml结构
<view>{{numA}} + {{numB}} = {{sum}}</view>
<button type="primary" bindtap="btnHandler2" data-step="{{1}}">numB + 1
</button>
<button type="primary" bindtap="btnHandler2" data-step="{{-1}}">numB - 1
</button>//组件的方法列表
methods:{btnHandler2(e){this.updateNum2(e.target,dataset.step)}
}

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

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

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

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

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

  3. 微信小程序 全局数据共享 Mobx

    1.首先安装MOBX 在项目所在目录下,右键选择[在外部终端窗口中打开],运行: npm install --save mobx-miniprogram@4.13.2 mobx-miniprogram ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 使用Java监控工具出现 Can't attach to the process
  2. html中js定义数组,javascript数组的定义及操作实例
  3. python matplotlib pyplot plt.axhline()函数(绘制平行于x轴的水平参考线)
  4. java看log技巧_Log日志框架的学习五.正确使用日志的10个技巧
  5. 爱因斯坦《我的世界观》
  6. aliyun折腾记录
  7. 学习笔记(58):Python实战编程-Combobox
  8. 【五级流水线CPU】—— 3. 逻辑、移位与空指令 + 数据冒险RAM解决
  9. 【UVA10256】The Great Divide(凸包相离判定)
  10. 城市信息学其五-空间经济学、城市信息学、和交通便利
  11. 地理加权回归出现多重共线性如何解决
  12. 利用Multipart上传文件报错:The field fileUpload exceeds its maximum permitted size of 1048576 bytes
  13. Selenium用户指南 - 第一章 Selenium 2.0 文档修订注解
  14. 美元指数回落美债收益率下跌,金价未能实现五连涨
  15. Q2 逆势扭亏为盈,群雄环伺之下朴新如何“虎口脱险”?
  16. Linux系统Shell脚本第五章:shell数组、正则表达式及文件三剑客之AWK
  17. 前端面试:(VUE)
  18. 实现一个小轮子:用AOP实现异步上传
  19. 三菱5uplc伺服电机指令_三菱FX3U PLC如何控制松下伺服
  20. python knn模型_使用Python训练KNN模型并进行分类

热门文章

  1. RTB论文梳理及精讲一
  2. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛非官方题解
  3. 只会用Excel吗?这套全面的数据分析工具打包送你,拿走不谢
  4. ThinkPHP拼团拼购h5单商户商城[可对接公众号]非常棒的一款h5拼团商城源码
  5. orcle plsql 列类型 BLOB与CLOB的互转,RAW
  6. c语言方式表达教师节快乐,教师节丨纸短情长 难忘师恩 请您收下这封慰问信(内含表彰名单)...
  7. 潮中有浪,国潮青花瓷魔浪S入手,我只能说很潮够强
  8. 利用Office PPT录制演示视频
  9. 全国计算机一级选择题免费,全国计算机一级考试选择题试题与详细答案
  10. Linux离线安装Python第三方库Requests