前言
近日在开发微信小程序的时候,要将globalData中某个属性的变化要同步到某个页面中。
使用Object.defineProperty()监听属性全局更改
经过上网查询相关资料,参考vue实现数据双向绑定原理:采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调。
1️⃣ 在app.js中添加以下代码
//app.js
App({
onLaunch: function() {
},
onShow: function() {
},
onHide: function() {
// wx.stopLocationUpdate()
},
watch: function(key, method) {
var obj =