小程序的页面导航

页面导航就是页面之间的跳转,小程序中页面之间的导航有两种方式:

  • 声明式导航:通过点击 navigator 组件实现页面跳转的方式
  • 编程式导航:通过调用小程序的 API 接口实现跳转的方式

声明式导航

1. 导航到非 tabBar 页面

非 tabBar 页面指的就是没有被当做 tabBar 进行切换的页面

示例代码如下:

<navigator url="/pages/info/info">去info页面</navigator>

上述代码使用 url 属性指定要跳转到的页面路径,其中,页面路径应该以 / 开头,且路径必须提前在 app.json的pages节点下声明,才能实现正常的跳转

2. 导航到 tabBar 页面

tabBar 页面指的是被当做 tabBar 进行切换的页面,如果 navigator 组件单纯使用 url 属性,无法导航到tabBar 页面,需要结合 open-type 属性进行导航

示例代码如下:

<navigator url="/pages/home/home" open-type="switchTab">导航到home页面</navigator>

3. 后退导航

如果要后退到上一页面或多级页面,需要把 open-type 设置为 navigateBack, 同时使用 delta 属性指定后退的层级数,示例代码如下:

<navigator open-type="navigateBack" delta="1">返回上一页</navigator>

4. 声明式导航传参

navigator 组件的 url 属性用来指定导航到的页面路径,同时路径后面还可以携带参数,参数与路径之间用 ?分隔,参数键与参数值用 = 相连,不同参数用 & 分隔

示例代码:

<navigator url="/pages/logs/logs?name=zs&age=18">去logs页面</navigator>

编程式导航

1. 导航到非 tabBar页面

通过 wx.navigateTo(object,object)方法,可以跳转到应用内的某个页面,但是不能跳转到 tabBar 页面,其中 object 参数对象的属性列表如下:

属性类型是否必填说明
urlString需要跳转的应用内非 tabBar 的页面的路径,路径后可以带参数,参数与路径之间用 ?隔离,参数键与参数值用 = 连接,不同参数用 & 分隔,如'path?key=value&key2=value2'
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数( 调用成功、失败都会执行)

2. 导航到 tabBar 页面

通过 wx.switchTab(object,object)方法,可以跳转到 tabBar 页面,并关闭其他所有非 tabBar页面,其中object参数对象的属性列表如下:

属性类型是否必填说明
urlstring需要跳转的 tabBar 页面的路径( 需在app.json的tabBar 字段定义的页面),路径后不能带参数
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

3. 后退导航

通过 wx.navigateBack(object,object)方法,关闭当前页面,返回上一页面或多级页面,其中object参数对象的属性列表如下:

 

属性类型是否必填说明
deltanumber返回的页面数,如果 delta 大于现有页面数,则返回到首页
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

示例代码:

<button type="primary" bindtap="btnHandle">通过编程式导航后退</button>
// 在对应的.js文件中与data平级定义下面的函数
btnHandle: function(){
    wx.navigateBack({
        delta: 1
    })
}

4. 编程式导航传参

wx.navigateTo(object,object)方法的 object 参数中,url属性用来指定需要跳转的应用内非tabBar页面的路径,路径后可以带参数,参数与路径之间使用?分隔,参数键和参数值用 = 相连,不同参数用 & 分隔

示例代码:

wx.navigateTo({
    url:'/pages/info/info?name=zs&age=18'
})

页面接收导航传递过来的参数

不论是声明式导航传参还是编程式导航传参,最终导航到的页面可以在onLoad生命周期中接收传递过来的参数

代码示例如下:

// 生命周期函数--监听页面加载
onLoad: function(options){
    console.log(options)// options就是导航传递过来的参数
}

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值