Vue路由传参
方式一:配置动态路由
- 页面刷新,参数不会消失
- URL路径中会显示传递的参数
{
path: '/detail/:id',
name: 'Detail',
component: Detail
}
var id = 1;
this.$router.push('/detail/' + id)
this.$route.params.id
方式二:通过query
属性传值
- 使用
path
来匹配路由 - 页面刷新,参数不会消失
query
类似get
,跳转之后页面的url后面会拼接参数,类似?id=1
- 目标组件在
create
生命周期中,通过this.$route
接受
{
path: '/detail',
name: 'Detail',
component: Detail
}
this.$router.push({
path: '/detail',
query: {
name: '张三',
id: 1,
}
})
this.$route.query
方式三:通过params
属性传值
- 目标组件在
create
生命周期中,通过this.$route
接受 - 通过路由属性中的
name
来确定匹配的路由 - 密文传参,页面不再url地址上显示
- 缺点:刷新页面后,参数就消失了
{
path: '/detail',
name: 'Detail',
component: Detail
}
this.$router.push({
name: 'Detail',
params: {
name: '张三',
id: 1,
}
})
this.$route.params
query
和params
传参的区别
params
传参必须使用命名路由的方式传参params
传参不会显示在地址栏上,会保存在内存中,刷新就会丢失,可以配合本地存储进行使用query
的参数会显示在地址栏上,不会消失