小程序navigateTo和redirectTo的使用

最近公司商城项目,有个小问题,就是在商品详情页>购物车页>确认下单页>支付成功和取消支付都会前往订单详情页。当时我没想这么多就全部跳转都用了navigateTo,这样做的话,第一个问题产生了,业务需要在支付成功后加多一个支付成功的页面,这样navigateTo就可能会超过五层限制;第二个问题就是,在确认支付页面无论支付失败还是支付成功都会跳到下一级页面,确认支付的下一个页面返回时,应该返回到购物车页面,不返回到确认订单页。

首页我想到的是,在使用页面卸载时的生命周期,如果用户返回了,就跳转到购物车页面。但是这样的话就会出现新的问题(具体问题就不细说了)。于是我细想了一下小程序的几个路由,发现了navifateTo和redirectTo配合使用就可以解决业务上的两个问题了。

 

注意:1.wx.navigateTo 和 wx.redirectTo 不允许跳转到 tabbar 页面,只能用 wx.switchTab 跳转到 tabbar 页面

   2.wx.navigateTo保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面

         3.wx.navigateTo 不会将旧页面出栈

         4.wx.redirectTo 会将旧页面出栈,再将需要跳转到的页面入栈

小程序在navigateTo五层之后,就不会能再入栈。

解决思路:商品列表     navigateTo     商品详情     navigateTo    购物车      navigateTo     确认订单      redirectTo       订单详情或者其他页面,这样再其他页面返回的时候就是购物车了。

购物车再返回就是商品详情页,然后一直返回到商品列表页

 

貌似表达得有点凌乱!