element 动态路由详解

4 篇文章 0 订阅
3 篇文章 0 订阅

element 动态路由详解和坑

近期需要用element 开发,并能对菜单进行动态管控。所以开始对element 动态路由进行研究

element集成了mock

element 集成了mock,mock中有动态路由数组所以不用自己生成了。
在这里插入图片描述

配置路由的关键方法

src下的permission.js
在这里插入图片描述
生成路由

路由封装

修改store下的permission中的filterAsyncRouter方法

//路由封账方法
export function filterAsyncRouter(asyncRoutes) {
  const accessedRouters = asyncRoutes.filter(route => {
    if (route.component) {
      if (route.component === 'layout/Layout') {
        route.component = Layout
      } else {
      //重点
        const value = route.component
        route.component = function component(resolve) {
          require(['@/views/' + value], resolve)
        }
      }
    }
    if (route.children && route.children.length) {
      route.children = filterAsyncRouter(route.children)
    }
    return true
  })
  return accessedRouters
}
//返回封装好的路由
const actions = {
  generateRoutes({ commit }, roles) {
    return new Promise(resolve => {
      const list = filterAsyncRouter(asyncRoutes) //直接添加到路由中(如果有角色校验则根据角色筛选)
      commit('SET_ROUTES', list)
      resolve(state.routes)
    })
  }
}

就这么简单

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值