Part 1(包装一下addRoutes
方法)
const createRouter = () => new Router({
mode: 'history',
base: process.env.BASE_URL,
routes: constantRouterMap,
})
const router = createRouter()
router.$addRoutes = (routes) => {
router.matcher = createRouter().matcher
router.addRoutes(routes)
}
Part 2(cloneDeep(asyncRouterMap)
)
import { asyncRouterMap } from '@/config/router.config'
import cloneDeep from 'lodash/cloneDeep'
function filterAsyncRouter (routerMap, permission) {
const accessedRouters = cloneDeep(routerMap).filter(route => {
//to do
})
return accessedRouters
}
const accessedRouters = filterAsyncRouter(asyncRouterMap, [获取的权限配置])
router.$addRoutes(accessedRouters)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…