原文链接:https://segmentfault.com/a/1190000012735168
vue-router传参踩坑(query和params),所以总结一下两者的区别
1.query方式传参和接收参数
传参:
this.$router.push({
path:'/xxx'
query:{
id:id
}
})
接收参数:this.$route.query.id
注意:
传参是$router,接收参数是$route!!!
2.params方式传参和接收参数
传参:
this.$router.push({
name:'xxx',
params:{
id:id
}
})
接收参数:
this.$route.params.id
注意:
params传参,push里面只能是 name:'xxxx',不能是path:'/xxx',因为params只能用name来引入路由,如果这里写成了path,接收参数页面会是undefined!!!
两者的区别:
其实有点类似于get和post请求,直白的说:query相当于get请求,页面跳转的时候,可以在地址栏看到请求参数,而params相当于post请求,参数不会再地址栏中显示。
3.$router和$route的区别
- $router为VueRouter的实例,想要导航到不同URL,则使用router.push方法
- $route为当前router跳转对象,里面可以获取name、path、query、params等