动态路由实现方案
1. 全部注册
只管菜单,路由全部写死
弊端:用户可以在导航栏访问
2. 不同的角色注册不同路由
用户登录后拿到用户的身份,然后根据用户身份 动态的加载路由数组,然后注册
弊端:新增角色需要修改前端代码 => 重新部署
3. 根据菜单动态生成路由映射(推荐)
菜单里面包含url,url对应路由的path,path对应某个component
然后可以根据url动态的生成路由数组,动态生成的方案有两种:
-
菜单中就有加载组件的名称 (component: Role.vue)
要求服务器返回要有这个字段
弊端:名称和路径必须一致,如果有修改或者写错就会出问题
-
菜单只有url
前端代码中编写好映射关系(path/component),
然后根据菜单的url和映射关系中的path,动态的进行匹配,匹配上就放入路由数组,然后注册 (推荐)