微信小程序路由跳转详情

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()转换拆出来就好。

你可能感兴趣的:(微信小程序,javascript,小程序)