微信小程序 全局数据共享 Mobx
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相关推荐
- 微信小程序-全局数据共享
微信小程序-全局数据共享MobX 1.开发中常用的数据共享方案 为了解决组件之间的数据共享,开发中常用的数据共享方案有:Vuex/Redux/MobX等 2.小程序中全局数据共享方案-MobX ...
- 微信小程序全局数据共享学习笔记
在小程序中,可使用 mobx-miniprogram 配合 mobx-miniprogram-bindings 实现全局数据共享.其中: mobx-miniprogram 用来创建 Store 实例对 ...
- 微信小程序-------全局通信方案mobx
微信小程序-------全局通信方案mobx 微信小程序本身并没有提供类似于vue中的vuex或者React里的Redux这样的全局通信方案,只在组件中有behaviors这样的属性共享机制,用起来也 ...
- 微信小程序----全局状态管理 (便于全局埋点等操作)
说明 由于我是一个有着一颗玻璃心的博主,导致在2018年后博客很少更新.原因是由于我的分享并没有解决到部分人的问题,而导致被骂了.当时这颗玻璃心就碎了,所以这两年以来很是消极,博客很少更新.这里给那些 ...
- 逆战之微信小程序全局配置
微信小程序之全局配置-1 小程序的配置分为全局配置.页面配置及sitemap 配置 全局配置 小程序根目录下的 app.json 文件用来对微信小程序进行全局配置.文件内容为一个 JSON 对象,有以 ...
- php小程序开发实例,微信小程序全局配置开发实例
本文主要和大家分享微信小程序全局配置开发实例,主要以代码的形式和大家分享,希望能帮助到大家. 一.app.json 使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设 ...
- 微信小程序全局路由拦截
前言 略 微信小程序全局路由拦截方法1 目前微信小程序没有全局路由拦截.要想实现全局路由拦截,需要自己进行扩充.具体参考这里:微信小程序–路由拦截器. 实现思路: 替换Page的参数对象的onShow ...
- 微信小程序 全局路由拦截
1. 微信小程序 全局路由拦截 // utils/filter.js function loginCheck(pageObj) {if (pageObj.onLoad) {let _onLoad = ...
- 微信小程序全局配置文件app.json中window:backgroundColor“不生效”
那些年我们一起踩过的坑~ 今天说一下微信小程序全局配置文件app.json中window的backgroundColor属性,设置之后发现没效果. 查了资料发现原来这个backgroundColor属 ...
最新文章
- Apache htaccess 重写假设文件存在!
- eclipse 将javaWeb项目转化成maven项目
- 云供应商安全评估:小心落入陷阱
- android 键盘遮盖输入框_Android软键盘挡住输入框的终极解决方案
- 前端学习(534):多列布局1
- gitee提交代码_git 版本控制,github和gitee
- DolphinDB配置
- MongoDB的安装和启动方法详解
- 如何将同一云服务下的虚拟机从经典部署模型迁移到 Azure Resource Manager
- Python数据结构与算法笔记(三):查找问题——列表查找
- exception java doc_在javadoc中,標簽@throws和@exception之間有什么區別?
- python—列表,元组,字典
- Java IO流复制文件拒绝访问的原因及解决方法
- 大一计算机论文_大学计算机论文
- 安卓手机怎么投屏台式计算机,怎么将手机投屏到台式电脑上
- 【服务器管理之远程桌面】
- fpga与asic的区别
- docx文档怎么排列图片_怎么把图片文字转换成word?
- WFP实现侧边栏导航菜单
- ArcGISPro制作辐射4风格地图