用params来传参
this.$router.push({
path:"/detail",
params:{
name:'java',
}
});
接收参数的时候:
this.$route.params.name //undefined
这是因为,params只能用name来引入路由,下面是正确的写法:
this.$router.push({
name:"detail",
params:{
name:'java',
}
});
this.$route.params.name //java
这两者的差别:
1、用法
query要用path来引入,params要用name来引入,接收参数类似,分别是this.$route.query.name
和this.$route.params.name
。
2、显示
query更加类似于我们ajax中get传参,params则类似于post,说的再简单一点,前者在浏览器地址栏中显示参数,后者则不显示
3 、刷新
通过路由params传值,刷新页面数据消失会报错(关于刷新页面数据消失原因有两种,一是通过路由params传值,二是vuex传值) ,query方法则不会