在小程序的世界里,页面的流畅转换是用户体验的关键。接下来,让我们深入探讨小程序提供给我们的四种独特跳转方式:wx.navigateTo、wx.redirectTo、wx.switchTab和wx.reLaunch,它们各具特色,帮助你打造无缝的用户体验。
这是小程序中最常见的跳转方式,如同HTML中的window.location.href,它保留当前页面,让你轻松跳转到其他应用内页面。例如:wx.navigateTo({ url: 'test?id=1' })。值得注意的是,小程序左上角的返回箭头能让你轻松返回上一个页面,而wx.navigateBack方法则提供了更精确的控制。
与wx.navigateTo不同,redirectTo关闭当前页面,直达目标页面,就像HTML的window.open。例如:wx.redirectTo({ url: 'test?id=1' })。左上角没有返回箭头,意味着无法直接回溯到上一个页面,但仍然可以通过wx.navigateBack访问之前的状态。
当需要在 tabBar 之间切换时,switchTab就派上用场了。它会关闭所有非 tabBar 页面,只留下选定的页面。例如,{ "tabBar": { "list": [ ... ] } },然后调用wx.switchTab({ url: '/index' })。注意,wx.navigateTo和redirectTo不能用于 tabBar 跳转,switchTab是唯一的选择。
最后,reLaunch功能强大,它会关闭所有当前页面,重新打开指定的页面,就像按下手机的主屏幕按钮。它的返回行为与redirectTo相似,但清空了整个页面堆栈,无法回溯。
同时,我们还要提到getCurrentPages()方法,它在这些跳转操作中扮演了重要角色。redirectTo和reLaunch不会加入堆栈,而navigateTo则会。通过wx.navigateBack,你可以根据页面堆栈的保存状态,返回上一级或多级页面,实现灵活的页面管理。