wx.navigateTo和wx.reLaunch是微信小程序中两种常用的页面跳转API,它们各自具有独特的功能和使用场景。
区别
-
页面保留与关闭:
- wx.navigateTo:保留当前页面,跳转到应用内的某个页面。这意味着用户在浏览过程中可以返回到上一个页面,因为上一个页面被保留在了页面栈中。
- wx.reLaunch:关闭所有页面,无论是tabBar页面还是非tabBar页面,然后打开到应用内的某个页面。这种方法会清空页面栈,用户无法返回到之前的页面。
-
页面栈影响:
- 使用wx.navigateTo进行页面跳转时,页面栈会不断增加,每个新页面都会被添加到栈顶,直到达到微信小程序的页面栈限制(最多10层)。
- 而wx.reLaunch则会重置页面栈,无论之前打开了多少个页面,都会被关闭,只打开指定的页面。
-
跳转限制:
- wx.navigateTo不能跳转到tabBar页面,只能用于非tabBar页面之间的跳转。
- wx.reLaunch则可以跳转到任意页面,包括tabBar页面。
使用场景
-
wx.navigateTo的使用场景:
- 当用户需要在多个页面之间顺序浏览时,例如商品列表页到商品详情页的跳转。
- 需要保留当前页面以便用户可以轻松返回时,如在填写表单时跳转到其他页面查看信息后再返回继续填写。
- 页面数量不多,且不希望占用过多内存时,因为每次跳转都会保留当前页面。
-
wx.reLaunch的使用场景:
- 当用户需要从一个较深的页面层级直接返回到首页或某个特定的tabBar页面时。
- 在执行某些操作后,需要清空页面栈并重新开始一个新的流程时,如完成支付后跳转到支付成功页面。
- 需要避免页面栈过深导致的性能问题时,因为wx.reLaunch会重置页面栈。