在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性。以下介绍使用 props 将组件和路由解耦的三种方式:
1、设置props为true,通过params的方法进行传递
{
path:"groupDetail/:groupId",//定义其属性
component:groupDetail,
props:true
}
2、设置props为函数,通过query的方式进行参数的传递
{
path:"groupDetail",
component:groupDetail,
props : (route) => ({
groupId : route.query.groupId
})
}
3、通过props为对象的方式进行处理静态数据,可使用对象模式
{
path:"groupDetail",
component:groupDetail,
props:{
groupId:'404'
}
}
groupDetail组件的使用
<template>
<div>{{groupId}}</div>
</template>
<script>
export default {
props: ["groupId"]
}
</script>
作者:胡元娇
来源:移动云开发者社区