vue-element-admin后台生成动态路由及菜单

本文详细介绍了在vue-element-admin项目中如何实现后台动态生成路由和菜单。主要涉及src/router/index.js、mock/user.js、src/permission.js和src/store/modules/permission.js四个关键文件的修改,包括constantRoutes和asyncRoutes的处理,动态获取接口数据,并通过store.dispatch调用generateRoutes方法生成路由。同时,由于import路径问题,需确保component指向实际存在的页面路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue-element-admin后台生成动态路由及菜单

我使用的是官方国际化分支vue-element-admin-i18n
根据自己需求将路由及菜单修改成动态生成
如果直接使用的基础模板 vue-admin-template 自己再下载一份 vue-element-admin 将没有的文件复制到自己的项目里面

定位:src/router/index.js

constantRoutes:通用页面路由
asyncRoutes:动态路由
将 asyncRoutes =[…] 的值复制到文本中,并且把里面 component: () => import(‘@/views/dashboard/index’), 内容改为 component: (‘dashboard/index’), 凡是有import的都改一下,以及 component: Layout 我直接改为component: ‘Layout’
对我为什么不全部保留 而是把 @/views/ 删掉 后面会给出答案 当然也可以自己尝试 记忆犹新
并将其修改为 asyncRoutes=[]

定位:mock/user.js

根据自己需求新增接口 在这里只是为了快速配置 所以直接使用了 url: ‘/vue-element-admin/user/info.*’ 这个接口
原接口内容

// get user info
  {
   
    url: '/vue-element-admin/user/info\.*',
    type: 'get',
    response: config => {
   
      const {
    token } = config.query
      const info = users[token]
      return {
   
        code: 20000,
        data: info
      }
    }
  },

修改后接口内容

 // get user info
 {
   
   url: '/vue-element-admin/user/info\.*',
   type: 'get',
   response: config => {
   
     const {
    token } = config.query
     const info = users[token]
     const rdata = [.....]//这里是前面复制到文本中的asyncRoutes值 自行加入
     // mock error
     if (!info) {
   
       return {
   
         code: 50008,
         message: 'Login failed, unable to get user details.'
       }
     }
     info.routs = rdata //给info多加一个返回值 我随便命名为routs
     return {
   
       code: 20000,
       data: info
     }
   }
 }
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值