微信小程序-全局数据共享/页面间通信
一.全局数据共享
声明全局的变量,在app.js文件里
App({
//全局共享的数据
globalData:{
token:''
},
//设置全局数据
setToken(token){
this.globalData.token=token
}
})
使用 getApp() 获取全局App实例
//返回全局唯一的APP实例
const appInstance=getApp()
Page({
login(){
console.log(appInstance)
appInstance.setToken('11111')
}
})
二.页面间通信
上级页面使用回调函数参数eventChannel的emit方法发送数据给下级页面
使用events对象处理下级页面返回的数据
Page({
//点击按钮触发事件处理函数
handler(){
wx.navigateTo({
url: '/pages/list/list',
events:{
//key:被打开页面的发射的事件
//value:回调函数
currentEvent:(res)=>{
console.log(res)
}
},
success(res){
//通过回调函数获取eventChannel并发射数据
res.eventChannel.emit('myevent',{
name:'tom'
})
}
})
}
})
下级页面使用eventChanel的on方法监听发送的数据,使用emit方法发送数据给上级页面
Page({
onLoad(){
//获取eventChannel事件
const eventChanel = this.getOpenerEventChannel()
//监听发射的事件
eventChanel.on('myevent',(res)=>{
console.log(res)
})
//也可以发数据
eventChanel.emit("currentEvent",{age:10})
}
})