在项目开发中,我们很多时候都会遇到需要点击按钮跳转页面的情况。HTML中我们使用<a></a>标签或者监听标签的onclick事件来达到预期效果,而在小程序中,官方提供了以下六种跳转方式。
路由跳转方式 | 描述 |
---|---|
wx.switchTab (API) |
跳转到tabBar页面,并关闭其他所有非tabBar页面 |
wx.reLaunch (API) |
关闭所有页面,打开到应用内的某个页面 |
wx.redirectTo (API) |
关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到tabbar页面。 |
wx.navigateTo (API) |
保留当前页面,跳转到应用内的某个页面,但是不能跳转到tabbar页面。使用wx.navigateBack 可以返回到原页面。 |
wx.navigateBack (API) |
关闭当前页面,返回上一页面或多级页面。可以通过getCurrentPages获取当前的页面栈,决定需要返回几层。 |
navigator (组件) |
页面中使用链接跳转,相当于HTML中的<a></a>标签用法 |
很多时候我们都需要在页面跳转时进行传值,以上六种方式中只有wx.switchTab
和wx.navigateTo
不能传递参数外,其他四种都可以带参数进行页面跳转。而我们跳转一般都需要保留当前页面,不需要对当前页面进行销毁,所以我们选择组件navigator
或者API 接口中的wx.navigateTo
来实现带参数跳转效果。
在2.7.3基础库版本之前,两者跳转方式都是在url后拼接参数。如“path?key=value&key2=value2
”。但在2.7.3基础库之后,官方提供了一种新的参数传递方式,但只在wx.navigateTo
接口中有效。
我们该选择哪种跳转方式?
如何选择跳转方式,并不是根据我们心情去选择的,我们应该根据实际业务以及参数类型等来选择跳转方式。