1、路由跳转

声明式:就是指标签实现的跳转方式

编程式:就是指js事件实现的跳转方式;

原生js跳转:(2种)

  • 声明式:a标签              属性 href
  • 编程式:location            属性  href

vue跳转:(2种)

  • 声明式:router-link        属性to
  • 编程式:this.$router.push

小程序跳转:(2种)

  • 声明式:navigator标签    属性url(跳转的路径)小程序跳转的时候可以用绝对路径;也可以用相对路径。
  • 编程式:利用js来跳转

小程序跳转注意事项:写路径的时候一定不要忘记加斜杠,理由:你如果不加斜杠的话,它就会在当前页面里面去找这个路径,那肯定找不到呀,因此写绝对路径时千万记得加斜杠。

小程序里面严格区分tabBar页面和非tabBar页面,那么问题来了,那我们如何区分呢?

        我们可以参考一下微信公众平台里面的官方文档:

        navigate:跳转的是非tabBar页面,它有一个open-type属性,后面跟的属性值可以帮助我们区分,以下为属性值:

navigate:跳转到非tabBar页面
switchTab:跳转到tabBar页面
navigateBack:返回上一级或多级(最多十级:超过十级返回首页)
redirectTo:关闭当前页面,跳转到应用内的某个页面,但是不允许跳转到tabBar页面
reLaunch:关闭所有页面,打开到应用的某个页面

        navigate与redirectTo的区别:(因为navigate跳转的时候会给页面添加缓存,而redirectTo没有缓存。)
        redirectTo(上一个页面不需要返回的时候使用:使用场景:支付页面完毕后使用;还有登陆后也可以使用)

        redirectTo与reLaunch的区别:redirectTo关闭当前页面,跳转到某个页面,reLaunch关闭所有页面,跳转到某个页面。

2、路由传参

//  第一种传参方式:路径 ? 参数1=值 & 参数2=值 & 参数3=值
toShopCar(){
    wx.navigateTo({
        url:'/pages/pay/pay?            username='+this.data.form.username+'&goodsNum='+this.data.form.goodsNum
    })
}

//  第二种传参方式:模板字符串 路径 ? 参数1=${值} & 参数2=${值}
toShopCar(){
    wx.navigateTo({
        url:`/pages/pay/pay?username=${this.data.form.username}&goodsNum=${this.data.form.goodsNum}`
    })
}

Logo

前往低代码交流专区

更多推荐