一.全局数据共享
声明全局的变量,在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})}})