vue-router路由动态传参query和params的区别

时间:2022-06-29 17:23:04

1.query方式传参和接收参数

//路由

{
path: '/detail', //这里不需要参入参数
name: "detail",
component: detail//这个details是传进来的组件名称
} 使用:
方法1:
<router-link :to="{ name: 'details', query: { id: 123 }}">
点击按钮
</router-link> 方法2:
<router-link :to="{ path: 'details', query: { id: 123 }}">
点击按钮
</router-link> 方法3:
this.$router.push({name:'details',query:{id:}}) 方法4:
this.$router.push({path:'details',query:{id:}}) 页面url显示结果是:http://localhost:8081/#/details?id=123 //接受参数 this.$route.query.id

一般来说,query要用path来引入,params要用name来引入。

2.params方式传参和接收参数

//路由

{
path: '/detail/:id/', //后面要带参数
name: "detail",
component: detail
} 使用:
方法1:
<router-link :to="{ name: 'details', params: { id: 123 }}">
点击按钮
</router-link> 方法2:
this.$router.push({name:'details',params:{id:}}) 页面url显示结果是:http://localhost:8081/#/details/123 //接受参数 this.$route.params.id

直白的来说 query相当于get请求,页面跳转的时候,可以在地址栏看到请求参数,

而 params相当于post请求,参数不会再地址栏中显示

注意点:

query 刷新不会丢失 query里面的数据
params 刷新 会会 丢失 params里面的数据