常见的微信小程序的页面之间跳转的方式有:
- wx.navigateTo(Object):保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回到原页(新页面入栈)
- wx.redirectTo(Object):关闭当前页面,跳转到应用内的某个页面(当前页面出栈,新页面入栈)
- wx.switchTab(Object):跳转到 tabBar 页面,同时关闭其他非 tabBar 页面(非Tab页面全部出栈,只留下新的 Tab 页面)
- wx.navigateBack(Object):返回上一页面(页面不断出栈)
- wx.reLaunch(Object):关闭所有页面,打开到应用内的某个页面(页面全部出栈,只留下新的页面)
1. wx.navigateTo(Object)
- 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。
- 使用
wx.navigateBack
可以返回到原页面。 - 小程序中页面栈最多十层。(对于页面不是特别多的小程序,通常推荐使用 wx.navigateTo进行跳转, 以便返回原页面,以提高加载速度。当页面特别多时,则不推荐使用)
跳转时流程:
- 进入下一个页面:(currPage)onHide --> (NextPage)onLoad --> (NextPage)onShow --> (NextPage)onReady
- 利用wx.navigateBack返回上一页面:(currPage)onUnload --> (prePage)onShow
2. wx.redirectTo(Object)
- 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。(重定向,当页面过多时,被保留页面会挤占微信分配给小程序的内存,或是达到微信所限制的 10 层页面栈的情况下,我们应该考虑选择 wx.redirectTo)
优缺点:
- 优点:可以避免跳转下一页面后,上一页面继续占据运行内存
- 缺点:无法使用wx.navigateBack直接返回上一页面
跳转时流程:
- 进入下一个页面:(currPage) onUnload --> (NextPage)onLoad --> (NextPage)onShow --> (NextPage)onReady
3. wx.switchTab(Object)
-
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
参数
4. wx.navigateBack(Object)
- 关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈,决定需要返回几层。
参数
5. wx.reLaunch(Object)
-
关闭所有页面,打开到应用内的某个页面
参数
网友评论