作用:讓路由組件更方便的收到參數
布爾模式
props值為布爾值,布爾值為true,則把路由收到的所有params參數通過props傳給Info組件
const routes = [
{
path: '/about',
name: 'About',
component: () => import(/* webpackChunkName: "about" */ '../views/About.vue'),
children:[
{
path:'person',
name:'Person',
component: () => import('../views/Person'),
children:[
{
name:'Info',
path:'info',
component: () => import('../views/Info'),
props:true,
}
]
}
]
}
]
對象模式
props值為對象,該對象中所有的key-value的組合最終都會通過props傳給Info組件
const routes = [
{
path: '/about',
name: 'About',
component: () => import(/* webpackChunkName: "about" */ '../views/About.vue'),
children:[
{
path:'person',
name:'Person',
component: () => import('../views/Person'),
children:[
{
name:'Info',
path:'info',
component: () => import('../views/Info'),
props:{name:'張三',age:18},
}
]
}
]
}
]
函數模式
props值為函數,該函數返回的對象中每一組key-value都會通過props傳給Info組件
const routes = [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/about',
name: 'About',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '../views/About.vue'),
children:[
{
path:'person',
name:'Person',
component: () => import('../views/Person'),
children:[
{
name:'Info',
path:'info',
component: () => import('../views/Info'),
props(route){
return {
name:route.query.name,
age:route.query.age
}
},
}
]
}
]
}
]
接收參數
<template>
<div>
<p>姓名:{{name}}</p>
<p>年齡:{{age}}</p>
</div>
</template>
<script>
export default {
name: "Info",
props:['name','age']
}
</script>