news 2026/6/9 22:21:50

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《Vue 项目路由 + Layout 的最佳实践》

@[toc]

前言:路由乱,本质是“页面结构没设计”

很多项目后期路由文件看起来像这样:

  • 一个文件 1000 行
  • Layout 套 Layout
  • 新页面不知道该放哪

说白了就是一句话:

路由和页面结构是“边写边凑”的。

一、Layout 的职责一定要收紧

一句话定义 Layout:

只管结构,不管业务。

Layout 里应该有什么?

  • Header
  • Sidebar
  • Footer
  • <router-view />

不应该有什么?

  • 接口请求
  • 权限判断
  • 业务状态

二、最推荐的 Layout 结构

Layout ├─ Header ├─ Sidebar └─ MainContent (router-view)

这个结构的好处是:

  • 所有页面共享结构
  • 页面只关心自己内容

三、路由如何“自动套 Layout”

{path:'/',component:MainLayout,children:[{path:'dashboard',component:Dashboard}]}

这样做的本质是:

Layout 是路由的一部分,而不是页面自己引的组件

四、多 Layout 怎么处理?

真实项目里几乎一定有:

  • 登录页 Layout
  • 后台 Layout
  • 全屏页 Layout

解决方式非常简单:

{path:'/login',component:BlankLayout},{path:'/',component:AdminLayout,children:[...]}

你会发现:

  • 页面不需要知道自己用什么 Layout
  • 路由一眼就能看懂结构

五、菜单一定是“路由的衍生物”

不要自己维护一份菜单数据。

constmenus=routes.map(route=>({title:route.meta.title,path:route.path}))

这样做的好处是:

  • 权限变了,菜单自然变
  • 不存在“菜单有,页面进不去”

六、路由文件一定要拆模块

router/ ├─ index.ts ├─ modules/ │ ├─ user.ts │ ├─ order.ts │ └─ admin.ts

每个模块只关心自己:

  • 新功能 = 新文件
  • 删除模块 = 删文件

七、总结一句话

路由是页面结构的说明书,不是业务代码的垃圾桶。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 5:56:33

Operating Karon: A Calm Admin Log for Repair Shop Websites

Karon in Production: Fixing a Car Service Site’s Booking Flow I rebuilt this car repair shop website because the old one created friction at the exact moment visitors wanted reassurance. People don’t visit a repair shop site to “browse.” They visit be…

作者头像 李华
网站建设 2026/6/6 16:46:47

vue3使用h函数如何封装组件和$attrs和props的区别

&#xff0c;插槽如何穿透3&#xff0c;暴露实例以及实例中的方法在vue3中的$attrs的变化vue3中$listeners已被删除合并到$attrs中。vue3的$attrs现在包括class和style属性。vue2中不包含class和style属性。也就是说&#xff1a;当子组件写上 v-bind"$attrs"父组件就…

作者头像 李华
网站建设 2026/6/6 2:46:36

SOP实时侦测系统

上图先 # -*- coding: utf-8 -*- import cv2 import mediapipe as mp import numpy as np import time import sys import os import tempfile import subprocess# 解决中文显示问题 - 使用Pillow确保中文正确显示 def cv2_puttext_chinese(img, text, position, font_scale,…

作者头像 李华
网站建设 2026/6/9 8:26:37

【Android】基于SurfaceControlViewHost实现跨进程渲染

1 前言 ​ 本文将介绍基于 SurfaceControlViewHost 实现跨进程渲染普通 View 和 GlSurfaceView&#xff0c;力求用最简单的 Demo&#xff0c;介绍 SurfaceControlViewHost 的应用&#xff0c;方便读者轻松扣出核心代码应用到自己的业务中。 ​ 核心代码片段如下。 ​ 1&#x…

作者头像 李华