当前位置: 首页 > news >正文

XYGo Admin 菜单与路由:Vue3 动态路由 + GoFrame 权限菜单的完整实现方案

XYGo Admin 菜单与路由Vue3 动态路由 GoFrame 权限菜单的完整实现方案做后台管理系统菜单和路由是最容易踩坑的地方。静态写死在代码里——权限一变就得改代码重新部署动态生成吧——又怕性能差、白屏时间长。今天聊聊 XYGo Admin 是怎么用前后台双路由体系动态菜单加载来解决这个问题的。双路由体系前台和后台彻底分家XYGo Admin 把路由拆成了两套互不干扰的体系| 路由 | 前缀 | 模式 | 用途 ||------|------|------|------|| 前台门户 | / | 静态注册 | 首页、文档、社区、会员中心 || 后台管理 | /admin | 动态加载 | 根据角色权限动态注册 |为什么要这样分前台部分首页、文档站、会员中心访问量大、变化少静态路由就够了首屏加载也快。后台部分每个角色的菜单都不一样——管理员能看到「系统设置」「用户管理」普通运营可能只有「内容管理」「数据看板」——这部分必须动态加载。前台路由在 router/frontend/ 里静态定义用独立的 FrontendLayout 布局typescript// router/frontend/index.tsconst frontendRoutes [{path: /,component: FrontendLayout,children: [{path: ,name: Home,component: () import(/views/frontend/index/index.vue)},{path: docs,name: Docs,component: () import(/views/frontend/docs/index.vue)},{path: community,name: Community,component: () import(/views/frontend/community/index.vue)}]}]后台动态路由从数据库到 Vue Router后台路由的核心逻辑用户登录后访问 /admin/* → 路由守卫拦截 → 从后端拉取菜单数据 → 转换成 Vue Router 路由 → 动态注册。整个流程是这样的用户访问 /admin/dashboard→ beforeEach 路由守卫→ 检查 Token没登就踢去登录页→ 检查动态路由注册状态→ 没注册调后端接口拿菜单列表→ RouteTransformer 转成 Vue Router 路由→ RouteRegistry 动态注册→ 跳转目标页面后端返回的菜单数据长这样json{id: 1,pid: 0,title: 系统管理,icon: ri:settings-3-line,path: /system,component: LAYOUT,type: 1,children: [{id: 2,pid: 1,title: 用户管理,path: user,component: /system/user/index,authList: [add, edit, delete]}]}每个菜单节点都带了 authList——这就是按钮级权限的基础。用户管理页面上「新增」「编辑」「删除」三个按钮能不能点全看 authList 里有没有对应的权限标识。六大核心工具各司其职XYGo Admin 把路由相关的逻辑拆成了六个工具类职责很清晰| 工具类 | 职责 ||--------|------|| RouteRegistry | 动态路由注册与卸载 || ComponentLoader | 组件懒加载 || RouteValidator | 路由合法性验证 || RouteTransformer | 菜单数据 → Vue 路由转换 || MenuProcessor | 菜单数据处理 || RoutePermissionValidator | 路由权限校验 || IframeRouteManager | Iframe 页面路由管理 |这种设计的好处是改菜单数据结构只需要动 RouteTransformer改权限校验逻辑只需要动 RoutePermissionValidator互不影响。路由守卫做了什么beforeEach前置守卫1. 白名单页面直接放行登录页、注册页、前台页面2. 没 Token → 跳到登录页3. 有 Token 但动态路由还没加载 → 调接口拉菜单、注册路由4. 权限校验——没有对应菜单权限的直接拦截afterEach后置守卫- 更新页面标题- 关闭顶部的加载进度条总结菜单与路由看起来简单实际做起来要考虑的东西不少权限粒度、动态注册的性能、组件懒加载、白名单放行、无权限页面的处理……XYGo Admin 这套方案最值得参考的地方是分层设计——前台静态、后台动态六个工具类各管一摊改一处不影响全局。如果你的后台系统还在把路由写死在代码里可以考虑参考这套方案做一次重构——前期多想的架构问题后面全是省下来的维护时间。更多技术细节可以查阅 XYGo Admin 官方文档。
http://www.gsyq.cn/news/1335293.html

相关文章:

  • 2026杭州狗主粮选购技术指南:杭州通用型狗粮、通用型狗粮、杭州100%鲜肉狗粮、杭州专用狗粮、杭州中型犬狗粮选择指南 - 优质品牌商家
  • 五月的风温柔细碎
  • 阿里云峰会大切换:云计算三十年首换用户,全栈重做能否驱动飞轮?
  • 别再只用SSH了!深入对比新华三设备Telnet的三种认证模式(None/Password/AAA)及适用场景
  • 别再手动挖洞了!用Leaflet + GeoJSON一键搞定复杂行政区地图遮罩(含飞地处理)
  • 从Sobel到Roberts:在Unity中实现屏幕后处理描边的性能与效果对比
  • C++零基础到工程实战(5.2.1):指针和引用理论到实战
  • Linux驱动开发避坑:为什么你的GPIO申请总失败?从devm_gpio_request_one源码看设备资源管理
  • 初创团队如何利用Taotoken的Token Plan套餐有效控制AI开发成本
  • 异步复位、异步复位-同步释放
  • 告别WSL网络隔离:用桥接模式让Ubuntu 22.04和Windows 11共享同一个局域网IP段
  • 2026年靠谱阳台晾衣架TOP5品牌技术实力深度剖析:电动衣架/落地晾衣架/遥控晾衣机/遥控晾衣架/隐藏式晾衣架/选择指南 - 优质品牌商家
  • 实验二:防火墙路由通信与安全访问实验
  • 【养龙虾指南:把 AI 养成“一次构建、永久运行“的自我进化系统】
  • 量化感知训练中的权重震荡:成因、影响与抑制策略
  • 5分钟终极指南:Adobe-GenP通用激活工具快速上手
  • 嵌入式储能监控系统开发实战:从核心板选型到算法部署
  • GEFFEN格芬智能云控分布式电源管理系统GF-SPMS8
  • 别再到处找教程了!用Docker Compose一键部署RuoYi-Cloud微服务全家桶(含Nacos 2.x + Sentinel)
  • 论文查重,重复率太高怎么办?
  • 华为ENSP模拟器实战:手把手教你配置LACP链路聚合,实现带宽翻倍与链路备份
  • 2026年腾讯云OpenClaw/Hermes Agent配置Token Plan保姆式教学
  • 好用的合同管理系统怎么选?8个真实选型标准
  • 别再只改POI版本了!解决EasyExcel报错,你可能还漏了xmlbeans这个关键依赖
  • 从Hi-Fi耳机到5G基站:聊聊FIR和IIR滤波器那些意想不到的应用场景
  • 别再只用串口了!手把手教你用STM32CubeMX配置LIN总线(基于TJA1020收发器)
  • 把OpenWrt路由器变成轻量Web服务器:手把手教你配置NGINX并挂载外部存储
  • 合宙ESP32 S3接SD卡模块总失败?可能是HSPI和VSPI的坑(附完整引脚配置)
  • DistroAV:基于NDI技术的OBS Studio网络音视频传输解决方案
  • c语言之时间格式化之转换为yyyy-MM-dd‘T‘HH:mm:ss.SSSZ 例如“2026-12-17T17:26:40.979+0700”