微信小程序页面通信

路由传参

当前页面

wx.navigateTo({
	url: '/pages/test/index?id=123'
})
<navigator url="/pages/test/index?id=123">页面通信</navigator>

被打开页面

onLoad: function (options) {
	console.log(options);
}

页面通信

1.当前页向目标页传递数据

//当前页
  onEventChannel() {
    wx.navigateTo({
      url: '/pages/test/index',
      success(res) {
        res.eventChannel.emit('emitData', {
          data: 123
        })
      }
    })
  },
//目标页面
  onLoad: function (options) {
    let eventChannel = this.getOpenerEventChannel()
    eventChannel.on('emitData', data => {
      console.log(data);
    })
  },

2. 目标页向当前页传递数据

//当前页
  onEventChannel() {
    wx.navigateTo({
      url: '/pages/test/index',
      events:{
        emitData(data){
          console.log(data);
        }
      }
    })
  },
//目标页
  onLoad: function (options) {
    let eventChannel = this.getOpenerEventChannel()
    eventChannel.emit('emitData', {
      data: 123
    })
  },

修改上一页数据

const pages = getCurrentPages(); // 可以获取当前页面栈,是一个数组
const prevPage = pages[pages.length - 2]; // 获取上个页面

//prevPage就是上一页面的数据,包含数据和方法
//修改上一个页面的data
//相当于子页面向父页面传参
prevPage.setData({
  name: 'xxx',
});

最后:还可以是用globalData实现多页面通信,本地缓存(.wx.setStorage、wx.getStorage)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值