19-onload页面传参与vueroute路由的区别

84 阅读1分钟

[在navigator中传参,在接收数据的页面用vueroute接收参数]

[小程序中不支持使用$route获取参数,会报错,uniapp中支持]

传参

<navigator url="/pages/demo2/demo2?wd=uniapp">跳转到demo2</navigator>

接收参数

    mounted() {
      console.log(this.$route);
    }

$route对象中有一个值query,传递的参数就在里面 image.png

    mounted() {
      console.log(this.$route.query.wd);
    }

成功拿到了传递的参数: image.png

不通过navigator标签,通过点击事件写方法跳转的参数也是携带在url里,都是一样的

[在小程序中获取url传参]

在微信小程序中不支持$route获取参数,需要在生命周期onload中获取

mounted中通过$route.query获取值的方法要注释掉,否则会报错

    onLoad(e) {
      console.log(e);
    }

获取到的结果: image.png

同时,用这个方法在web端也能拿到同样的结果 image.png

[通过页面栈获取参数]

    onLoad(e) {
      console.log(e);
      console.log(getCurrentPages());
    }

在onload中还可以通过页面栈获取参数和页面栈,并且在微信小程序和web端拿到的结果是一样的

小程序端: image.png

web端:

image.png

上面是通过navigator标签传值,通过点击事件中写方法传值也是一样的

      goDemo2 (){
        uni.navigateTo({
          url:"/pages/demo2/demo2?wd=uni-app&id=156532",
          success:res=>{
            console.log(res);
          }
        })
      }

image.png

web端结果相同 image.png