微信小程序-全局数据共享/页面间通信

打印 上一主题 下一主题

主题 1590|帖子 1590|积分 4770

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一.全局数据共享

声明全局的变量,在app.js文件里
  1. App({
  2.   //全局共享的数据
  3.   globalData:{
  4.     token:''
  5.   },
  6.   //设置全局数据
  7.   setToken(token){
  8.     this.globalData.token=token
  9.   }
  10. })
复制代码
使用 getApp() 获取全局App实例
  1. //返回全局唯一的APP实例
  2. const appInstance=getApp()
  3. Page({
  4.   login(){
  5.     console.log(appInstance)
  6.     appInstance.setToken('11111')
  7.   }
  8. })
复制代码
二.页面间通信

上级页面使用回调函数参数eventChannel的emit方法发送数据给下级页面
使用events对象处理下级页面返回的数据
  1. Page({
  2.   //点击按钮触发事件处理函数
  3.   handler(){
  4.     wx.navigateTo({
  5.       url: '/pages/list/list',
  6.       events:{
  7.         //key:被打开页面的发射的事件
  8.         //value:回调函数
  9.         currentEvent:(res)=>{
  10.           console.log(res)
  11.         }
  12.       },
  13.       success(res){
  14.         //通过回调函数获取eventChannel并发射数据
  15.         res.eventChannel.emit('myevent',{
  16.           name:'tom'
  17.         })
  18.       }
  19.     })
  20.   }
  21. })
复制代码
下级页面使用eventChanel的on方法监听发送的数据,使用emit方法发送数据给上级页面
  1. Page({
  2.   onLoad(){
  3.     //获取eventChannel事件
  4.     const eventChanel = this.getOpenerEventChannel()
  5.     //监听发射的事件
  6.     eventChanel.on('myevent',(res)=>{
  7.       console.log(res)
  8.     })
  9.     //也可以发数据
  10.     eventChanel.emit("currentEvent",{age:10})
  11.   }
  12. })
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

风雨同行

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表