vue路由的传参方式?

170 阅读1分钟

vue路由传参方式有两种,一种是params,一种是query,具体代码示例如下:

params传参:

this.$router.push({
        name: `TestVueRouterTo`,
        params: {
          page: '1', code: '8989'
        }
      })

params接收参数:

created(){
    const code = this.$route.params.code;
    const page = this.$route.params.page;
}

query传参:

this.$router.push({
        path: `/TestVueRouterTo`,
        query: {
          page: '1', code: '8989'
        }
      })

等价于:

const id = 123;
this.$router.push({path: `/TestVueRouterTo/${id}` });

query接收参数:

created(){
    const code = this.$route.query.code;
    const page = this.$route.query.page;
}

总结:

如果你想用params传参,那么就用name的方式,如果你想用query方式传参,就用path的方式。

那么 name和path传参有什么区别呢?简单的说就相当于post请求和get请求,name传参相当于post请求,你传递的参数看不到,刷新浏览器路由参数会消失。而path传参不会,它会把你的参数拼接到url上,有点像get请求似的。