微信小程序的页面跳转场景
在微信小程序里面,有通过页面或菜单跳转到菜单的情况,这时候使用的是wx.switchTab;有通过页面或菜单跳转到页面的情况,这时候使用的是wx.navigateTo或wx.redirectTo,也可以使用页面控件navigator的url进行跳转。对于页面的后退,可以使用wx.navigateBack。
以上是微信小程序最常用的5种跳转方式,还有一种不常用,那就是wx.reLaunch,这种跳转方式默认是没有返回按钮的,如果要跳转到的页面不需要返回按钮,可以使用这种。
微信小程序的跳转限制
在微信小程序里面,页面层级的限制是5层,也就是说,使用navigateTo进行跳转的次数是5。微信的页面容器就好比是一个能装5个篮球的筐,每navigateTo一个页面,就会往筐里扔进去一个篮球,当进行页面回退的时候,就会把篮球取走一个,这样当navigate进筐的篮球的个数为5时便不能再往里放了,这时候页面也就不能再跳转了。使用时需要注意这个细节,如果有特殊需要,则需要重写这个筐的代码。
微信小程序的跳转函数和标签
跳转函数:1.wx.reLaunch 2.wx.navigateTo 3.wx.navigateBack 4.wx.switchTab 5.wx.redirectTo
跳转标签:navigator-url
如何解决微信小程序的5层限制
解决方案
(1)自定义页面跳转方式
(2)当页面栈里已经存在要跳转的目标页面A,那么使用wx.navigateBack({delta: xx})返回到此页面A,{xx=getCurrentPages().length - 目标页面A在栈里的index - 1}
(3)如果页面栈还没有要跳转的目标页面A a、若页面栈已经已满(length>=5),那么使用wx.redirectTo(页面A); b、否则,使用wx.navigateTo(页面A)
(4)页面间数据采用缓存传递
总之,判断当前要跳转的页面是否已经存在,再判断是否已经大于等于5层了,再对页面做处理。
我们的微信
我们的微博