因为小程序是基于事件驱动模型的,所以有时候会有这样的需求,当某个变量值发生变化的时候,我们要执行一些逻辑,在自定义组件里面有server方法可以很轻松实现,但我现在要在page里面实现,现在微信小程序还没有这个功能,相信以后的版本肯定会加入这样的功能,下面我们来实现这个功能:
用ES6的方法,实现监听globalData里的变量,比如我要监听openid这个变量,在app.js里添加以下方法
watch: function(callback){
let obj = this.globalData
Object.defineProperty(obj, 'openid', {
configurable: true,
enumerable: true,
set: function (value) {
callback(value)
}
}
)}
然后在onLoad里面添加以下方法:
getApp().watch(function(v){
console.log(v)
})
END