API: 组件

组件

该组件用于显示嵌套路由场景下的页面内容。

例如:

  1. -| pages/
  2. ---| parent/
  3. ------| child.vue
  4. ---| parent.vue

上面的目录树结构会生成下面这些路由配置:

  1. ;[
  2. {
  3. path: '/parent',
  4. component: '~/pages/parent.vue',
  5. name: 'parent',
  6. children: [
  7. {
  8. path: 'child',
  9. component: '~/pages/parent/child.vue',
  10. name: 'parent-child'
  11. }
  12. ]
  13. }
  14. ]

为了显示 child.vue 组件,我们需要在父级页面组件 pages/parent.vue 中加入 <nuxt-child/>

  1. <template>
  2. <div>
  3. <h1>我是父级页面</h1>
  4. <nuxt-child :foobar="123" />
  5. </div>
  6. </template>

<nuxt-child/> 接收 keep-alivekeep-alive-props:

  1. <template>
  2. <div>
  3. <nuxt-child keep-alive :keep-alive-props="{ exclude: ['modal'] }" />
  4. </div>
  5. </template>
  6. <!-- 将被转换成以下形式 -->
  7. <div>
  8. <keep-alive :exclude="['modal']">
  9. <router-view />
  10. </keep-alive>
  11. </div>

子组件还可以接收 Vue 组件等属性。

可以看这个实际案例:嵌套路由示例

命名视图

Nuxt v2.4.0 新增

<nuxt-child/>接受name prop 来呈现渲染命名视图:

  1. <template>
  2. <div>
  3. <nuxt-child name="top" />
  4. <nuxt-child />
  5. </div>
  6. </template>

查看更多例子,请点击 named-views 例子.