原生小程序跨页面动态改变状态,动态改变app.js全局定义的数据globalData,并实现实时监听的方法!!!!!!

原生小程序跨页面动态改变状态,动态改变app.js全局定义的数据globalData,并实现实时监听的方法!!!!!!


利用 Object中的Object.defineProperty()实现,实时监听数据改变,状态管理,跨页面等!!!!
接下来可以先看看这个方法的讲解:

在这里插入图片描述
其实简单的说,app.js就是一条桥梁,实现了两个页面之间的通信,vuex中实现响应式的核心,其实也是利用Object中的Object.defineProperty实现的;

看不懂没关系,我们会用就行了!!

先讲一下我们大概的需求:
1.再A页面想控制B页面的状态,或者改变相应的数据
2.想定义全局数据,并实现实时监听改变,就像vuex状态管理一样

现在上代码:
1.app.js
先再app.js定义一个全局数据对象globalData,再对象里定义好相应的属性与属性值
在这里插入图片描述
然后再在app.js定义监听的方法
在这里插入图片描述
代码在这;
watch: function (method, isstr) {
var obj = this.globalData;
Object.defineProperty(obj, isstr, {
configurable: true,
enumerable: true,
set: function (value) {
this._consumerGoodsStatus = value; //_consumerGoodsStatus是Object.defineProperty自定义的属性
method(value);
},
get: function (value) {
return this._consumerGoodsStatus
}
})
},
2.相应的页面(index.js)
调用app.js定义的方法,如何调用app.js的方法呢那么就需要用到getApp()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这是我的第一条博客,写的有什么不对的,请多各位担待!!或者有什么不懂得地方可以随时问我!!!

如果对你有所帮助就给小编我点个赞加个关注吧!!!

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值