【vue-router】06 - 命名视图

117 阅读1分钟

1. 应用场景

有时候想同时 (同级) 展示多个视图,而不是嵌套展示,例如创建一个布局,有 sidebar (侧导航) 和 main (主内容) 两个视图,这个时候命名视图就派上用场了。

2. 同级的用法

路由信息表

一个视图使用一个组件渲染,因此对于同个路由,多个视图就需要多个组件。确保正确使用 components 配置 (带上 s):

image.png

根组件

image.png

页面效果

image.png

image.png

3. 嵌套的用法

实现以下布局

/settings/emails                                       /settings/profile
+-----------------------------------+                  +------------------------------+
| Settings                          |                  | Settings                     |
| +-----+-------------------------+ |                  | +-----+--------------------+ |
| | Nav | Email                   | |  +------------>  | | Nav | Profile            | |
| |     +-------------------------+ |                  | |     +--------------------+ |
| |     |                         | |                  | |     | ProfileView        | |
| +-----+-------------------------+ |                  | +-----+--------------------+ |
+-----------------------------------+                  +------------------------------+

  • Nav 只是一个常规组件。
  • Settings 是一个视图组件。
  • EmailProfileProfileView 是嵌套的视图组件。

路由信息表

image.png

Settings.vue 视图组件

image.png

Nav.vue 常规组件

image.png

可以注意到:<router-view><router-link> 并不在同一个组件中,<router-view> 仅仅是为 子路由组件 占个位而已,至于从哪里 <router-link> 则没有特别要求

剩下的三个组件 Email,Profile,ProfileView 正常写就行,没有特别要求