命名视图可以在同一级(同一个组件)中展示更多的路由视图,而不是嵌套显示
命名视图可以让一个组件中具有多个路由渲染出口,这对于一些特定的布局组件非常有用
命名视图的概念类似具名插槽,并且视图的默认名称也是default
一个视图使用一个组件渲染,因此对于同个路由,多个视图就需要多个组件,需要确保正确使用components配置
/router/index.ts:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| import { createRouter, createWebHistory } from "vue-router" import type { RouteRecordRaw } from "vue-router"
const routes: Array<RouteRecordRaw> = [ { path: "/", component: ()=> import("../components/root.vue"), children: [ { path: "/user1", components: { bbb: ()=> import("../components/B.vue"), default: ()=> import("../components/A.vue") } }, { path: "/user2", components: { ccc: ()=> import("../components/C.vue") } } ] } ]
const router = createRouter({ history: createWebHistory(), routes })
export default router
|
root.vue:
1 2 3 4 5 6 7 8 9 10 11
| <template> <div> <router-link to="user1">/user1</router-link> <router-link style="margin-left: 10px;" to="user2">/user2</router-link> <hr> <!-- 什么都不写的话,展示default --> <router-view></router-view> <router-view name="bbb"></router-view> <router-view name="ccc"></router-view> </div> </template>
|