微信小程序 页面跳转传递值几种方法详解

微信小程序页面跳转时可以传递参数,主要有以下几种方式:

1. URL传参

通过在URL中携带参数传递数据,如:"/pages/details/details?id=1001"

在接收页面的onLoad方法中可以获取传递的参数:

onLoad: function(options) {
   console.log(options.id) //输出1001
}

2. 路由传参

通过页面路由函数wx.navigateTo或wx.redirectTo的第二个参数传递数据:

wx.navigateTo({
  url: '/pages/details/details',
  success: function(res) {
    // 通过eventChannel向被打开页面传送数据
    res.eventChannel.emit('acceptDataFromOpenerPage', {data: 'test'})
  }
})

在被打开页面的onLoad方法中使用wx.onEvent监听事件,并获取数据:

onLoad: function(options) {
   var _this = this
   // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
   const eventChannel = this.getOpenerEventChannel()
   eventChannel.on('acceptDataFromOpenerPage', function(data) {
     console.log(data) //输出{data: 'test'}
     _this.setData({
       test: data.data
     })
   })
}

3. 本地缓存传参

通过本地缓存存储数据,在跳转后的页面中获取缓存数据:

跳转前页面存储数据:

wx.setStorageSync('key', 'value')
wx.navigateTo({
   url: '/pages/index/index'
})

跳转后页面获取缓存数据:

onLoad: function () {
   var value = wx.getStorageSync('key')
   console.log(value) //输出"value"
}

4. 全局变量传参

通过全局变量存储数据,在跳转后的页面中获取全局变量数据:

跳转前页面存储数据:

// app.js
App({
  globalData:{
    key: 'value'
  }
})
//page.js
wx.navigateTo({
   url: '/pages/index/index'
})

跳转后页面获取全局变量数据:

onLoad: function () {
   var app = getApp()
   console.log(app.globalData.key) //输出"value"
}

以上就是微信小程序页面跳转传递值的几种方法。使用时应根据实际需求选择合适的方法。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

neter.asia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值