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