
递归方法
// asyncRoutes 本地所有的菜单路由
// menus 请求的角色的菜单路由
const _arrRoutes = (menus, localRoutes) => {
const list = []
localRoutes.filter(item => menus.some(ele => {
if (item.children && item.children.length) {
const routeChild = _arrRoutes(ele.children ?? [], item.children ?? [])
if (routeChild.length) item.children = routeChild
}
// 筛选条件
if (item.name === ele.path) {
list.push(item)
}
}))
return list
}
调用方法
const routes = _arrRoutes(menus, asyncRoutes)
console.log(routes, '筛选后的数据')

这个博客内容涉及到了一个使用递归方法来过滤和匹配本地路由与请求的角色菜单路由的过程。通过遍历和比较`localRoutes`与`menus`中的元素,筛选出符合条件的路由,并将其子路由进行相应的处理,最终返回匹配的路由列表。这个方法对于权限管理和动态路由配置具有重要意义。
1220

被折叠的 条评论
为什么被折叠?



