在微信小程序中,用于页面跳转的API主要有以下几个,但通常不需要5个那么多,因为它们的功能各有侧重,用于不同的跳转场景。以下是这些API及其详细代码和区别:
-
wx.navigateTo(OBJECT)
用于保留当前页面,跳转到应用内的某个页面,使用
wx.navigateBack
可以返回到原页面。javascript`wx.navigateTo({ url: 'pages/detail/detail?id=1' })`
区别:跳转后原页面还在,可以通过
wx.navigateBack
返回。 -
wx.redirectTo(OBJECT)
关闭当前页面,跳转到应用内的某个页面。
javascript`wx.redirectTo({ url: 'pages/detail/detail?id=1' })`
区别:跳转后原页面被关闭,不能返回。
-
wx.reLaunch(OBJECT)
关闭所有页面,打开到应用内的某个页面。
javascript`wx.reLaunch({ url: 'pages/index/index' })`
区别:关闭所有页面,打开新页面,不能返回。
-
wx.switchTab(OBJECT)
跳转到 tabBar 页面,并关闭其他非 tabBar 页面。
javascript`wx.switchTab({ url: '/pages/index/index' })`
区别:只能跳转到 tabBar 页面,并关闭其他非 tabBar 页面。
-
wx.navigateBack(OBJECT)
关闭当前页面,返回上一页面或多级页面。可通过
getCurrentPages()
获取当前的页面栈,决定需要返回几层。javascript`wx.navigateBack({ delta: 1 // 返回上一页,如果 delta 大于现有页面数,则返回到首页 })`
区别:它不是跳转到新页面,而是返回到上一页面或多级页面。
请注意,上面的URL路径通常是以pages/
开头的相对路径,但在wx.switchTab
中,如果是tabBar页面,可以使用绝对路径(以/
开头)。
此外,还有一些其他与页面跳转相关的API,如wx.reOpenLaunchApp
(小程序被用户从后台态切换到前台态时执行),但这并不直接用于页面跳转。
在实际开发中,应根据不同的场景和需求选择适合的跳转方式。