Vue 项目路由 + Layout 的最佳实践

文章目录

    • [一、Layout 的真正职责](#一、Layout 的真正职责)
    • [二、推荐的 Layout 结构](#二、推荐的 Layout 结构)
    • [三、路由如何选择 Layout?](#三、路由如何选择 Layout?)
    • [四、Layout 中只做三件事](#四、Layout 中只做三件事)
    • [五、为什么 Layout 一定要放在路由层?](#五、为什么 Layout 一定要放在路由层?)
    • [六、多 Layout 场景实战](#六、多 Layout 场景实战)
    • [七、Layout + 权限的组合优势](#七、Layout + 权限的组合优势)
    • 八、小结

如果你发现:

  • 页面里充满 Header / Sidebar
  • 登录页和业务页结构混在一起
  • 一个页面换布局要改一堆代码

那说明:Layout 没设计好

一、Layout 的真正职责

一句话总结:

Layout 负责页面结构,不负责业务。

二、推荐的 Layout 结构

txt 复制代码
layouts/
├── MainLayout.vue
├── BlankLayout.vue
├── AdminLayout.vue

三、路由如何选择 Layout?

ts 复制代码
{
  path: '/',
  component: MainLayout,
  children: [...]
}

登录页:

ts 复制代码
{
  path: '/login',
  component: BlankLayout,
  children: [...]
}

四、Layout 中只做三件事

  1. 页面结构
  2. 插槽
  3. 通用 UI(Header / Footer)
vue 复制代码
<template>
  <Header />
  <router-view />
</template>

五、为什么 Layout 一定要放在路由层?

因为这样可以:

  • 动态切换布局
  • 权限与布局解耦
  • 路由层表达页面结构

六、多 Layout 场景实战

ts 复制代码
{
  path: '/admin',
  component: AdminLayout,
  children: adminRoutes
}

不同角色看到不同布局,不用改页面代码

七、Layout + 权限的组合优势

  • Layout 控制"长什么样"
  • Router 控制"能不能进"
  • 页面只关心业务

八、小结

Layout 是 UI 骨架,Router 是应用骨架。

这两个分清楚,项目可维护性直接上一个台阶。

相关推荐
李剑一1 天前
小红书前端架构面试问的挺深入啊!面试官:Vue中组合式API与选项式API的设计权衡
vue.js·面试
Curvatureflight1 天前
前端国际化 i18n 落地实践:语言包、动态文案和格式化问题怎么处理?
前端·c++·vue
kTR2hD1qb1 天前
Claude Code Skill的介绍与使用
java·前端·数据库·人工智能
一 乐1 天前
汽车租赁|基于SprinBoot+vue的汽车租赁管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·汽车·论文·毕设·汽车租赁管理系统
修己xj1 天前
打造专属博文封面神器:一个开源免费的博文封面生成器ThisCover
前端
kyriewen1 天前
面试8家前端岗位后,我发现了一个残酷的事实:AI不是加分项,是门槛
前端·javascript·面试
Fighting_p1 天前
【面试 - el-select问题及解决】wujie 微前端下子系统 el-select 多选 filterable 过滤失效
前端
吃口巧乐兹1 天前
AI 全栈时代,为什么要服务端使用 NestJs
前端
yingyima1 天前
Redis 延迟任务队列:凌晨3点服务器报警的救星
前端
weiggle1 天前
第三篇:可组合函数(Composable)——Compose 的基石
android·前端