小程序实战(六)-跳转页面

444 阅读2分钟

一、跳转页面的几种方式对比

小程序的页面跳转涉及到一个概念:页面栈。 也就是说,将页面信息以 栈 的数据结构保存,以存储页面跳转的记录。 小程序页面跳转有几种方式,这几种方式对于页面栈的处理不同:

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) 进行跳转的时候才能通过这种方式返回。 使用如下:

  1. 返回上一页:
wx.navigateBack({
    delta: 1
})
  1. 返回首页
let pages = getCurrentPages()  // 获取当前页面栈
wx.navigateBack({
    delta: pages.length
})

<关于我们>

我们是来自帝都的一枚前端程序猿 + 一枚前端程序媛。

这里发布的文章是我们对学习内容的总结,预计会每周至少会更新一篇。

目前我们学习计划是: 小程序实战 => vue 进阶用法 => vue 原理 => css 基础 => es6 => js 深入

另外,工作中用到的一些技术和完成的功能,我们也会及时总结更新在这里

如文章有错误或表述不清晰,欢迎各位留言反馈~~