我来回答一下吧,有不同见解的欢迎浏览探讨
首先说一下我原来的疑惑:我原以为是出于性能的考虑所以大家才采用图一的方式,后来查阅相关的官方文档并没有看到对应的说明。
在对具体的代码业务进行分析后,得出以下观点:
- 可以合并图一的方式,改为都放到 / 跟路径的 children 中
- 大家都采用图一方式的原因:
比方现在有个“系统管理”,系统管理下有个“用户管理”, 系统管理只是一个分类名称,并没有具体的组件,而用户管理是有具体的组件页面的
{
path: '/system',
name: 'system',
title: '系统管理',
component: Home,
children: [
{
path: 'user',
name: 'user',
title: '用户',
component: () => import('user.vue'),
}
]
}
如果是放到 / 跟下
{
path: '/',
name: 'home',
component: Home,
children: [
{
path: 'system',
name: 'system',
title: '系统管理',
/* 注意这里的 System 组件,需要额外的添加 */
component: System,
children: [
{
path: 'user',
name: 'user',
title: '用户',
component: () => import('user.vue'),
}
]
}
]
}
这里的 System 组件,实则是可以不用的 但是因为多了一个路由层级,所以需要加一层 router-view
并且如果我们去掉 / 跟下的 system 这一层,又失去了我们想分模块的初衷
最后得出结论:每一个模块独立出来,即不用添加额外的组件, 又实现了分模块管理
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…