在App.vue中这样写
在globalData中写上需要定义全局的变量,在其他页面引用globalData的变量时:
getApp().globalData.变量名
例如:getApp().globalData.openId
如果想监听全局变量是否改变,在methods里面写一个监听方法watch
watch(methos, istr) { //方法;值 let obj = this.globalData; let info = ''; //Object.defineProperty()方法,会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象 Object.defineProperty(obj, istr, { // value:"hello", // 属性对应的值,默认为 undefined // writable:false, // 默认为 false,表示只读,无法给该属性赋值。在严格模式中,给只读属性赋值会报错。宽松模式中,给只读属性赋值不会生效 enumerable: true, // 目标属性是否可以被枚举。true | false(使用for...in或Object.keys()) configurable: true, // 目标属性是否可以被删除或是否可以再次修改特性 true | false set: function(value) { //当设置值的时候触发的函数,设置的新值通过参数value拿到 this._consumerGoodsStatus = value methos(value) info = value; }, get: function(value) { return this._consumerGoodsStatus } }); },
然后,在需要监听的页面onLoad中,调用watch方法,监听某个全局变量是否改变
onLoad() { getApp().watch(this.onloadAd, 'closeType'); }, methods:{ onloadAd(res) { console.log(res) } }