小程序跳转页面导航

本文详细介绍了小程序中页面导航的两种方式:声明式使用组件和编程式通过wx对象的方法。分别涵盖了tabBar页面、非tabBar页面以及后退导航的实例和API调用方法。
摘要由CSDN通过智能技术生成

🎪页面导航

页面导航指的是页面之间的相互跳转。例如:浏览器中实现页面导航的方式有两种方式,分别是<a>链接 和 loaction.href,而小程序实现页面导航也有两种方式,如下:

🍇声明式导航

在页面上声明一个<navigator>导航组件

通过点击<navigator>组件实现页面跳转

 导航到tabBar页面 

tabBar页面指的是被配置为tabBar的页面。在使用<navigator>组件跳转到指定的tabBar页面时,需要指定url(表示要跳转的页面地址,必须以 / 开头)属性和open-type(表示跳转的方式,属性必须是switchTab)属性,代码如下:

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

导航到非tabBar页面 

非tabBar页面指的是没有配置为tabBar的页面。在使用<navigator>组件跳转到普通的非tabBar页面时,则需要指定url(表示要跳转的页面地址,必须以 / 开头)属性和open-type(表示跳转的方式,属性必须是navigate)属性,为了简便,在导航到非tabBar页面时,open-type="navigate"属性可以省略,代码如下:

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

后退导航 

如果要后退到上一页或多级页面,则需要指定open-type(值必须是navigateBack,表示要进行后退导航)属性和dalta(指必须是数字,表示要后退的层级)属性,为了简便,如果只是后退到上一页面,则可以省略delta属性,其默认值就是1,代码如下:

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

 🍈编程式导航 

调用小程序的导航API,实现页面的跳转

导航到tabBar页面

wx.switchTab(OBJECT)(跳转主页)

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

wx.navigateTo 和 wx.redirectTo 不允许跳转到 tabbar 页面,只能用 wx.switchTab 跳转到 tabbar 页面 

调用wx.switchTab(Object object)方法,可以跳转到tabBar页面。其中Object参数对象属性列表如下:

示例代码如下

//页面结构
<button bindtap="gotoMessage">跳转到消息页面</button>
 
// 通过编程式导航,跳转到message页面
gotoMessage(){
  wx.switchTab({
    url: '/pages/message/message',
  })
}

导航到非tabBar页面 

wx.navigateTo(OBJECT) (保留页面跳转)

这是最普遍的一种跳转方式,其官方解释为:“保留当前页面,跳转到应用内的某个页面” 

调用wx.navigateTo(Object object)方法,可以跳转到非tabBar的页面,其中Object参数对象的属性列表和wx.switchTab属性列表一致。示例代码如下:

//页面结构
<button bindtap="gotoPerson">跳转到person页面</button>
 
//通过编程式导航,跳转到person页面
gotoPerson(){
  wx.navigateTo({
    url: '/pages/person/person',
  })
},

小程序中左上角有一个返回箭头,可返回上一个页面

也可以通过方法 wx.navigateBack 返回原页面

wx.redirectTo(OBJECT) (关闭当前页面跳转)

关闭当前页面,跳转到应用内的某个页面。

 

 左上角没有返回箭头,不能返回上一个页面

wx.reLaunch(OBJECT) (关闭所有页面跳转)

关闭所有页面,打开到应用内的某个页面。

跟wx.redirectTo 一样左上角不会出现返回箭头,但两者却不完全相同

这里要提到小程序中的 getCurrentPages() 方法

在wx.navigateTo中,每跳转一个新的页面,其原始页面就会被加入堆栈,通过调用wx.navigateBack(OBJECT)可通过获取堆栈中保存的页面 返回上一级或多级页面;

wx.redirectTo,方法则不会被加入堆栈,但仍可通过wx.navigateBack(OBJECT)方法返回之前堆栈中的页面

wx.reLaunch 方法则会清空当前的堆栈。

后退导航

wx.navigateBack(Object object) (页面返回)

调用wx.navigateBack(Object object)方法,可以返回上一页或多级页面,其中Object参数对象可选属性列表和上面列表大体一致,唯一区别在于url换成了dalta。 示例代码如下:

//页面结构
<button bindtap="gotoBack">后退</button>
 
// 编程式导航,返回上一页
gotoBack(){
  wx.navigateBack()
}

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值