小程序跳转页面几种方式

需求: 从home.wxml跳转到detail.wxml页;

一:js实现

  1. navigateTo (有返回键,不可以跳转到tabBar页面)
//保留当前页面,跳转到应用内的某个页面
wx.navigateTo({
  url: '/pages/detail/detail?id=1'
})
  1. switchTab (没有返回键,只能跳转到tabBar页面,不可以携带参数)
wx.switchTab({  
      url: `/pages/detail/detail`,
    })
  1. reLaunch (跳转任意页面, 没有返回, 有 首页 按钮
    )
    wx.reLaunch({
      url: '/pages/detail/detail'
    })
  
  1. redirectTo ( 只可以跳转tabBar 页面, 没有返回,但有首页按钮
    )
    wx.redirectTo({
       url: `/pages/detail/detail`,
    })
  1. navigateBack (应用在目标页面, delta值为1 ,表示跳转上一页,2表示跳两级
    )
   wx.navigateBack({
       delta:1
    })

区别:

  1. wx.navigator是开启一个新页面,那个页面是隐藏了,原页面是onHide,所以是可以返回的,但是返回之后,跳转的页面就unload了
  2. wx.redirecTo是当前页面替换成新的页面,所以返回不去onunload(页面被卸载)
  3. tabBar无论跳哪个页面都是onHide

传参注意:

跳转页面传递数组参数必须序列化

 let  arr=[1,2,3,4,5]
      category = JSON.stringify(arr)        //取子集分类 数组传递需要序列化
     wx.navigateTo({
         url: `/pages/detail/detail/?cate= ${category} `,
        })

跳转页面传递数组参数必须序列化

 onLoad: function (options) {
  let   category = JSON.parse(options.cate);
 console.log(category)
}

参数值过长接收时候内容不全得问题

//传参
wx.navigateTo({//wx.redirectTo、wx.reLaunch
    url: '/pages/details/details?id=' + encodeURIComponent(id)
    })

//接收
onLoad(options) {
    var id = decodeURIComponent(options.id);
}

二:navigator组件实现

  1. <navigator url = "/pages/details/details">跳转到新页面</navigator>

  2. <navigator url = "/pages/details/details" open-type = "redirect">跳转到新页面</navigator>

  3. <navigator url = "/pages/details/details" open-type = "switchTab">跳转到新页面</navigator>

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

star@星空

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

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

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

打赏作者

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

抵扣说明:

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

余额充值