路由的跳转与传值

小程序路由跳转方式: 

    1, 声明式navigator跳转
    <navigator url="/pages/camera/camera">非tabbar跳转</navigator>
    <navigator url="/pages/tags/tags" open-type="redirect">非tabbar跳转</navigator>
    <navigator open-type="switchTab" url="/pages/user/user">tabbar跳转</navigator>
    <navigator url="/pages/index/index" open-type="reLaunch">任意跳转</navigator>
    <navigator open-type="navigateBack">返回上一页</navigator>
    <navigator open-type="exit" target="miniProgram">退出小程序</navigator>

    2, 编程式导航跳转   非tabbar跳转 和 tabbar跳转
    保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面,使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层
    wx.navigateTo({
      url: '/pages/event/event',
    })
    跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
    wx.switchTab({
      url: '/pages/douyu/douyu',
    })
    关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面
    wx.redirectTo({
      url: '/pages/grammar/grammar',
    })
    关闭所有页面,打开到应用内的任意一个页面
    wx.reLaunch({
      url: '/pages/event/event',
    })

小程序路由传值方式   
    1, url路径拼接传值   wx.navigateTo, 和 wx.redirectTo 和  wx.reLaunch 可以传值
    发
    wx.navigateTo({
      url: '/pages/camera/camera?name=wuyifan&age=20',
    })
    接
    onLoad(options){
       console.log("camera1", options)    
    }

    2, 自定义事件传值, 类似于vue中的bus总线传值, 只有wx.navigateTo这个API可以这样传
    在跳转成功回调中使用res.eventChannel.emit发射自定义事件传值
        发
    wx.navigateTo({
      url: '/pages/camera/camera',
      success: res=>{
        res.eventChannel.emit("myEvent", {name:'wuyifan'})
      }
    })
    接 
    onLoad(options){
        // 获取eventChannel对象(类似于vue中的bus对象), 接收自定义事件传值
        var eventChannel = this.getOpenerEventChannel()
        eventChannel.on("myEvent", data=>{
             console.log("camera2", data)
        })
    },    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值