一、跳转页面的几种方式对比
小程序的页面跳转涉及到一个概念:页面栈。 也就是说,将页面信息以 栈 的数据结构保存,以存储页面跳转的记录。 小程序页面跳转有几种方式,这几种方式对于页面栈的处理不同:
1.1 wx.navigateTo(OBJECT)
使用这种方式,会将原来的页面保存在页面栈中,在跳入到下一个页面时目标页面也会进栈。
所以这种方式是唯一一个可以通过 wx.navigateBack(OBJECT)
返回到上一页的方式。
使用如下:
wx.navigateTo({
url: '' // 目标页面路径
})
1.2 wx.redirectTo(OBJECT);
这种方式是先清除栈中原来的页面,然后再将目标页面推入栈中。
因此无法通过wx.navigateBack(OBJECT)
返回到上一个页面。
使用如下:
wx.redirectTo({
url: '' // 目标页面路径
})
1.3 wx.switchTab(OBJECT);
这个方式使用时有一个前提条件:必须是 tabBar 中声明的页面。 使用如下:
{
"tabBar": {
"list": [{
"pagePath": "index",
"text": "首页"
}]
}
}
wx.switchTab({
url: '/index' // 目标页面路径
})
1.4 wx.navigateBack(OBJECT)
这个方式一般用来返回上一页或返回某个页面栈中的指定页面。
但需注意:只有使用 wx.navigateTo(OBJECT)
进行跳转的时候才能通过这种方式返回。
使用如下:
- 返回上一页:
wx.navigateBack({
delta: 1
})
- 返回首页
let pages = getCurrentPages() // 获取当前页面栈
wx.navigateBack({
delta: pages.length
})

<关于我们>
我们是来自帝都的一枚前端程序猿 + 一枚前端程序媛。
这里发布的文章是我们对学习内容的总结,预计会每周至少会更新一篇。
目前我们学习计划是: 小程序实战 => vue 进阶用法 => vue 原理 => css 基础 => es6 => js 深入
另外,工作中用到的一些技术和完成的功能,我们也会及时总结更新在这里
如文章有错误或表述不清晰,欢迎各位留言反馈~~