小程序的路由 和 参数的传递

本文详细介绍了小程序中wx.switchTab、wx.navigateTo、wx.redirectTo和wx.reLaunch等路由跳转方法的使用及其区别,包括页面栈管理和参数传递。wx.navigateTo用于保留当前页面的跳转,wx.redirectTo则关闭当前页面,wx.reLaunch可关闭所有页面。同时,文章讲解了URL传参的编码解码方法及如何获取页面栈来刷新数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小程序路由

wx.switchTab

  • 只能跳转tabBar页面 并关闭其他非tabBar页面 异步

wx.navigateTo和wx.redirectTo

  • wx.navigateTo用于跳转到页面内的某个页面 且保留当前页面 跳转页面后面 可以返回上一个页面(wx.navigateback) 可以返回到源页面

  • wx.redirectTo:关闭当前页面 不能返回到上一个页面 只能跳转非标签页

wx.reLaunch

  • 关闭所有页面 打开到应用内的某个页面 既能跳转到标签页 又能跳转到非标签页 最低版本库 1.1.0

小程序参数的传递

一、url 传参 + decodeURIComponent函数进行了编码 可以避免用户输入特殊字符(如&、=、+ 、)出现问题

 wx.navigateTo({
      url: '/pages/index/index/?username=' + encodeURIComponent(this.data.username),
    })
//收到数据后使用dexodeURIComponent()解码
onLoad: function(option){

		this.setData({
username: dexodeURIComponent(option.username)
`})

}

二、 获取页面栈

let pages = getCurrentPages() //获取当前页面栈
let prevPage = pages[pages.length -2] //获取上一个页面对象
// 刷新页面   调用this.setData()
### 微信小程序获取路由参数 在微信小程序中,当通过 `wx.navigateTo` 或其他导航方法进行页面跳转并携带参数时,在目标页面可以通过 `onLoad` 生命周期函数中的 `options` 参数来访问这些数据[^1]。 对于常规的页面间传递参数情况: ```javascript // 假设这是发起跳转的地方 wx.navigateTo({ url: '/pages/targetPage/targetPage?id=123&name=John', }); ``` 而在接收端的目标页面,则可通过如下方式读取传入的信息: ```javascript Page({ onLoad: function (options) { // options 即为所接收到的对象形式的参数集 console.log('Received parameters:', options); // 如果需要单独处理某个特定参数比如id let receivedId = options.id; console.log(`The ID is ${receivedId}`); } }) ``` 值得注意的是,除了上述基本的方式外,还有其他的辅助工具可以帮助解析更复杂的场景下的URL参数。例如使用自定义的帮助函数或库来进行更加灵活的操作[^3]。 另外一种常见的做法是在模板文件里直接利用绑定表达式完成简单的参数附加工作,这通常发生在列表项点击事件触发的情况下[^5]: ```html <navigator url="/pages/goodList/index?goodsClassId={{item.id}}&name={{item.name}}" class="oit" hover-class="none"> <!-- 组件内部结构 --> </navigator> ``` 这里需要注意不同的API用于不同类型的页面切换:`navigateTo`, `redirectTo`适用于非tabBar页面间的转换;而`switchTab`专门用来转向设置好的tabBar页面,并且不允许附带额外参数;至于`reLaunch`则提供了更为广泛的适用范围——能够重新加载指定的应用内任何页面的同时清除当前栈内的其它页面[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值