params和query传参的区别
- params传参只能通过 name 引入路由,如果写成path:‘/xxx’,获取的参数是 undefined,获取方式:this.$route.params
- query传参name和path二者都可正常获取, 获取方式:this.$route.query
- params相当于post请求,参数不会显示在地址栏; query相当于get传参,可以在地址栏看到参数
路由跳转时推荐使用name的方式,因为路径可能会变,但名字一般是由具体含义的,一般不会变,写起来也简单一些
强调:
⚠️:使用params传参必须通过name引入,不能通过path引入
params传参
// 使用params传参,使用name
this.$router.push({
name: 'Login',
params: {
id: '2022-10-13'
}
})
// 获取参数
this.id = this.$route.params.id
query传参
// 使用query传参,通过name和path都能获取
this.$router.push({
path: '/Home',
query: {
name: '我是通过url传递参数的'
}
})
// 获取参数
this.name = this.$route.query.name