美文网首页
小程序页面跳转的几个方法和区别

小程序页面跳转的几个方法和区别

作者: KosmoSakura | 来源:发表于2018-11-12 14:41 被阅读0次

    目前小程序的几个页面跳转方式的主要区别就两点:

    • 1.是否可以返回上一个页面
    • 2.目标页面是否是tabBar

    两个通用属性

    • 1.限制:目前页面路径最多只能十层。
      -2.分类:wx.navigateTowx.redirectTo不允许跳转到 tabbar 页面,只能用 wx.switchTab 跳转到 tabbar 页面

    下面是对几个跳转方式的整理说明


    1.wx.navigateTo({})

    保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回;

    关于Url参数:

    • 不能跳转到tabBar页面
    • 带参格式:【路径】?【参数键1】=【参数值】& 【参数键2】=【参数值】
    wx.navigateTo({
        url:'../test/test?id=1&page=4',//跳转页面的路径,可带参数?隔开,不同参数用 & 分隔;相对路径,不需要.wxml后缀
        success:function(){}        //成功后的回调;
        fail:function(){}          //失败后的回调;
        complete:function(){}      //结束后的回调(成功,失败都会执行)
    })
    
    传递的参数在接收页面onLoad()函数中得到值:option.id就可以得到了
    onLoad: function (option) {
      console.log(option)//可以打印一下option看查看参数
        this.setData({
            id:option.id,
    });
    
    1.1.wx.navigateBack(OBJECT)

    关闭当前页面,返回上一页面或多级页面。
    可通过 getCurrentPages()) 获取当前的页面栈,决定需要返回几层。

    关于参数:

    delta-->类型:Number,
    默认值:1 ,
    说明:返回的页面数,如果 delta 大于现有页面数,则返回到首页。

    注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而 redirectTo 方法则不会。见下方示例代码

    // 此处是A页面
    wx.navigateTo({
      url: 'B?id=1'
    })
    
    // 此处是B页面
    wx.navigateTo({
      url: 'C?id=1'
    })
    
    // 在C页面内 navigateBack,将返回A页面
    wx.navigateBack({
      delta: 2
    })
    

    2.wx.redirectTo(OBJECT)

    关闭(之前的页面是回不去的)当前页面,跳转到非tabBar的某个页面

    关于Url参数:

    • 不能跳转到tabBar页面
    • 【路径】?【参数键1】=【参数值】& 【参数键2】=【参数值】

    3.wx.reLaunch(OBJECT)

    关闭(之前的页面是回不去的)所有页面,打开到应用内的某个页面。

    关于Url参数:

    • 【路径】?【参数键1】=【参数值】& 【参数键2】=【参数值】
    • 【如果是跳转到tabBar页面,则不能带参数】

    4.wx.switchTab(OBJECT)

    跳转到tabBar的某个页面,并关闭其他所有非 tabBar 页面

    关于参数:

    • 目标页面必须是在:app.json 的 tabBar 中定义的页面
    • 不能带参数
    wx.switchTab({ 
        url: '/pages/home/home' 
    });
    

    5.组件 <navigator>

    直接写在布局里面的跳转方式

    参数说明:

    • url:和上面几种方式的规则一样,当前小程序内的跳转链接
    • open-type(跳转方式):有效值如下表
      参数|说明
      --|--
      navigate |对应 wx.navigateTo 或 wx.navigateToMiniProgram 的功能
      redirect |对应 wx.redirectTo 的功能
      switchTab |对应 wx.switchTab 的功能
      reLaunch |对应 wx.reLaunch 的功能
      navigateBack |对应 wx.navigateBack 的功能

    eg:

    <navigator url="/pages/detail/detail">点击跳转</navigator>
    


    参考:小程序官方文档

    相关文章

      网友评论

          本文标题:小程序页面跳转的几个方法和区别

          本文链接:https://www.haomeiwen.com/subject/shccfqtx.html