uni-app 微信小程序调用APP.vue的全局变量globalData


在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)
    }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM