微信小程序监听App中的globalData——全局数据监听
1.在app.js中定义监听方法
// app.js
App({
//全局变量
globalData: {
loginAlert:false
},
/**
* 定义监听全局变量
* @param {*} variate:变量名称
* @param {*} method:监听的其它页面方法回调
*/
watch(variate,method){
var obj = getApp().globalData
var val = obj[variate]
//监听数据
Object.defineProperty(obj,variate,{
set:value=>{
val = value
method(variate,value)
},
get:()=>{
return val
}
})
}
})
2.注册监听方法
在需要监听的组件中注册app().watch 方法
// components/login-alert/login-alert.js
const app = getApp()
Component({
/**
* 组件的属性列表
*/
properties: {
},
/**
* 组件的初始数据
*/
data: {
show:false
},
lifetimes:{
attached(){
//注册监听全局登陆窗口弹出参数
app.watch('loginAlert',()=>{
this.setData({
show:app.globalData.loginAlert
})
})
}
},
/**
* 组件的方法列表
*/
methods: {
}
})