小程序navigateTo和redirectTo的使用

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

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

 

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

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

         3.wx.navigateTo 不会将旧页面出栈生命周期

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

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

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

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

 

貌似表达得有点凌乱!支付