路由组件的props配置

187 阅读1分钟

一、路由组件的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 }
    }