一、路由组件的props配置
进行路由传参的时候我们可以通过query、params方式进行传参,但是在面对大量数据的时候,query方式以及params方式传参会让我们的页面结构变得复杂且难以解读,大量的插值语法降低了我们的代码可读性。
二、props的第一种写法(对象写法)
在props的对象写法中,所有的key-value值会以props方式传递给Show组件,在Show组件中可以通过props:['id','title'],接收到由路由传递的数据。
{
name:'show',
path:'show',
component:Show,
props:{
id:1,
title:'有内鬼,取消交易'
}
}
三、props的第二种写法(布尔值)
props的值为布尔值,如果布尔值为真,则该路由组件收到的params参数会以props方式传递给该组件。
{
name:'show',
path:'show/:id/:title', //使用占位符,传递params参数
component:Show,
props:true // 布尔值为真,Show组件可以通过props形式接收传递的params参数
}
三、props的第三种写法(函数写法)
通过函数写法,我们可以用来传递query参数,而不再局限于params参数。函数写法接收一个参数,这个参数为当前路由元信息。
{
name:'show',
path:'show',
component:Show,
props($router){
return {
id : $router.query.id,
title : $router.query.title,
}
}
}
通过ES6的解构语法,我们还可以把函数写法的props简化成一下代码:
props({query:{id,title}}) {
return { id , title }
}