递归就是函数自己调用自己,但是得有出口,要不就是进行死循环了
动态创建路由里面有children,然后需要递归
const generateRoutes = (roles) => {
// 直接返回一个箭头函数
return roles.map((item) => {
const names = item.name;
const obj = {
path: "/" + names,
name: names,
component: () =>
// js书写规范,文件首字母大写
import(
"../views/" +
names.slice(0, 1).toUpperCase() +
names.slice(1) +
".vue"
),
};
if (item.meta) {
obj.meta = item.meta;
}
// 如果有children属性的话进行递归
if (item.children) {
obj.children = generateRoutes(item.children);
}
return obj;
// router.addRoute(obj)
});
};
router.addRoutes(generateRoutes(res.data.roles))