路由传参时有query和params
query传参:
this.$router.push('/login?name=jackson&age=19')
this.$router.push({
path:'/login',
query:{
name:'jackson',
age:19
}
})
this.$router.push({
name:'login',
query:{
name:'jackson',
age:19
}
})
获取:
this.$route.query.name
params传参
this.$router.push({
name:'login',
params:{
name:'jackson',
age:19
}
})
获取:
this.$route.params.name
区别:
- params传参,必须要用命名路由方式传值。
- params传参,不会显示在地址栏中,刷新会丢失,可以配合localStorage使用 (1)A跳转路由到B,通过params传值 (2)B页面中,立刻通过this.$route.params获取参数 (3)拿到参数后,立刻存到本地(保证刷新丢失后,还能从本地拿)
区别汇总:
- params传参,必须用命名路由方式传参。
- params传参,不会显示在地址栏上,会保存在内存中,刷新会消失,可以配合本地路由存储。
- query的参数会显示在地址栏上,不会丢失。