pureadmin的动态路由和静态路由

在 PureAdmin(基于 Vue3 的后台管理框架)中,静态路由动态路由是实现路由管理的两种方式,主要区别在于路由的定义时机、加载方式和灵活性,具体区别如下:

1. 静态路由

  • 定义方式 :路由规则在代码中硬编码,在项目打包时就已经确定,不会随用户或权限变化。

  • 特点

    • 写死在代码中(通常在 router/modules 目录下),例如登录页、404 页、首页等公共页面。
    • 不需要后端接口支持,加载速度快。
    • 对所有用户可见(除非通过前端逻辑手动过滤)。
  • 示例 (PureAdmin 中):

    javascript 复制代码
    // router/modules/static.js
    export default [
      {
        path: '/login',
        name: 'Login',
        component: () => import('@/pages/login/index.vue'),
        meta: { title: '登录', hidden: true }
      },
      {
        path: '/404',
        name: '404',
        component: () => import('@/pages/error/404.vue'),
        meta: { title: '页面不存在', hidden: true }
      }
    ]

2. 动态路由

  • 定义方式 :路由规则不在代码中硬编码 ,而是根据用户权限后端返回数据动态生成,在用户登录后通过接口获取并添加到路由系统中。
  • 特点
    • 路由规则由后端接口返回(例如根据用户角色返回可访问的菜单),前端动态注册。
    • 支持精细化权限控制,不同用户看到的路由(菜单)不同。
    • 需配合权限管理系统使用,灵活性高。
  • 示例流程 (PureAdmin 中):
    1. 用户登录后,前端调用接口获取该用户的权限路由列表。
    2. 前端将后端返回的路由数据(通常是 JSON 格式)转换为 Vue Router 可识别的路由配置。
    3. 通过 router.addRoute() 方法动态添加路由。
    4. 菜单组件根据动态生成的路由自动渲染侧边栏。

核心区别对比

维度 静态路由 动态路由
定义时机 项目打包时固定 用户登录后动态获取
数据来源 前端代码硬编码 后端接口返回(基于用户权限)
权限关联性 不依赖权限,对所有用户可见 与用户权限强关联,按需返回
灵活性 固定不变,修改需重新打包 可实时调整,无需重新打包
适用场景 公共页面(登录、404等) 业务页面(根据角色权限动态展示)

PureAdmin 中的实践

在 PureAdmin 中,通常会结合两种路由方式:

  • 静态路由:处理登录页、错误页等无需权限控制的公共页面。
  • 动态路由:处理业务模块(如用户管理、订单管理等),根据用户角色动态生成可访问的菜单和路由,实现"不同权限的用户看到不同的功能菜单"。

这种设计既保证了公共页面的稳定性,又满足了复杂权限场景下的灵活性。

相关推荐
benbenAItalk15 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
2601_9628857215 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
西瓜太郎123416 小时前
Claude Code、Codex CLI、Gemini CLI 能否共用一枚 Key?先看协议选择矩阵
前端·api 网关·claude code·gemini cli·codex cli
陈随易18 小时前
在Finch用了62亿词元,我认为这是新一代Agent工具之神
前端·人工智能·后端
水域安全老周18 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
计算机魔术师19 小时前
Anthropic CEO突然喊踩刹车,OpenAI罕见力挺:AI这辆车不能只踩油门了
前端
wing9819 小时前
从codex转战workbuddy使用一周的感受
前端·人工智能·后端
EatFan19 小时前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app
梦想平凡20 小时前
百游棋牌源代码开发搭建教程(五):房间创建、座位分配与请求幂等实现
前端·javascript·数据库·源代码管理
IT_陈寒20 小时前
Redis的Set操作居然能把我的服务整挂了?
前端·人工智能·后端