1.路由跳转
微信小程序的路由跳转 是通过两个栈堆实现的,这就导致了栈堆里最多储存十个页面,如果超过十个,会直接报错,所以要在必要的时候清空栈堆。
wx.navigateTo:最常用的跳转,跳转到另一个页面,并把当前页面存在栈堆里,缺点是会有十个限制,优点是回退的时候非常顺滑,页面直接联系紧密或者非常繁杂的页面跳转的时候推荐使用。
wx.switchTab:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,清空栈堆的方法之一,但局限性比较大。
wx.reLaunch:关闭所有的页面,打开到应用内的某个页面,清空栈堆的方法之一,可以一次性清空所有栈堆,但是二次加载的时候没有wx.navigateTo顺滑,非常影响体验。
wx.redirectTo:关闭当前页面,跳转到指定的某个页面,也是清栈堆的方法之一,页面联系的不紧密,不需要用户返回页面可以使用。一般来说可以用这个解决掉页面之间交互频繁栈堆爆满的问题。
wx.navigateBack:关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈,决定需要返回几层,跟wx.redirectTo的区别在于他只会跳到页面栈里有的栈,常用返回,非常好用,很简单解决双页面频繁交互问题。
顺带一提,页面传参:
当只有单个数据的时候:
var id=2
wx.navigateTo({
url: ‘/packageWF/estimate/estimate?id=’+id,
})
接收:
onLoad: function (options) {
this.setData({
sign:options.id
})
},
如果你传的值是boolena,int等数据都会被转换成字符串,接收的时候记得转换。
如果有大量数据的时候,创建一个对象,塞到对象里,使用JSON.stringify()转换成字符串发过去
wx.redirectTo({
url: ‘/package/ClockIn/Diet?tlist=’+JSON.stringify(this.data.tlist)
})
接收同理 用JSON.parse()转换拆出来就好。
————————————————
版权声明:本文为CSDN博主「Tx的练习题」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/txtop/article/details/123354253