父组件:
<li v-for="item in list" @click="getList(item.id)" :key="item.id"/>
第一种、跳转时使用push方法拼接携带参数
getList(id) {
// 直接调用$router.push 实现携带参数的跳转
this.$router.push({
path: `/getlist/${id}`,
})
路由配置:
{
path: '/getlist/:id',
name: 'Getlist',
component: Describe
}
子组件获取参数:
this.$route.params.id
第二种:通过路由属性中的name来确定匹配的路由,通过params来传递参数。
this.$router.push({
name: 'Getlist',
params: {
id: id
}
})
路由配置:
{
path: '/getlist',
name: 'Getlist',
component: Getlist
}
子组件获取参数:
this.$route.params.id
第三种:使用path来匹配路由,然后通过query来传递参数
this.$router.push({
path: '/getlist',
query: {
id: id
}
})
路由配置:
{
path: '/getlist',
name: Getlist',
component: Getlist
}
子组件获取参数:
this.$route.query.id
这里要特别注意 在子组件中 获取参数的时候是this.$route,
一般情况下都是用的第二种或第三种。
具体请看原vue router官网之组件传参:vue-router组件传参