在vue 路由配置文件,配置了props,作用是可以与route解耦,取值方便
配置props方式有三类:
1 设置为true
{
path:"/news/:type?",
component: () => import(/* webpackChunkName: "news-chunk-name" */ "News组件”),
props: true
}
在News组件中,使用如下:
{
props:["type"],// 在props指定需要的属性名称
data: () => {},
methods: {}
...
}
可以直接用 this.type取值,而可以不用 this.$route.params.type 取值
2 设置为对象
如果 props 是一个对象,它会被按原样设置为组件属性。当 props 是静态的时候有用。
{
path:"/news/:type?",
component: () => import(/* webpackChunkName: "news-chunk-name" */ "News组件”),
props: {
country: 'China',
time: '6pm'
}
}
在News组件中,使用如下:
{
props:["country",“time”],// 在props指定需要的属性名称
data: () => {},
methods: {}
...
}
3 设置为函数( 返回对象)
可以将参数转换成另一种类型,将静态值与基于路由的值结合等等。
比如 想利用url中query的数值,设置如下:
{
path:"/news/:type?",
component: () => import(/* webpackChunkName: "news-chunk-name" */ "News组件”),
props: (route) => ({
country: route.query.country,
time: route.query.time
})
}
利用方式 与 1,2 相同
https://router.vuejs.org/zh/guide/essentials/passing-props.html#%E5%B8%83%E5%B0%94%E6%A8%A1%E5%BC%8F
网友评论