Javascript

起因

事情是这样的,项目里需要对路由和按钮配置权限,所以会涉及到动态输出路由的问题,然后前端用的是 vue-element-admin ,看项目里是支持动态加载的,但是官方文档里对这块说得…算是语焉不详吧。

然后我翻了翻 issue 挺多人在问的,也有不少人给出了解决方案。嗯,我权当整理一下,怕年纪大容易忘。

思路

因为 vue-element-admin 主要是用于后台管理的框架,所以访问流程大致是这样子的:

  1. 发送登录请求
  2. 验证成功,返回 token
  3. 根据 token 返回当前用户信息,其中包括当前用户的角色,以及所属角色能访问的路由
  4. 前端创建一个路由组件映射表,主要作用是将后端返回的 component 的值替换为可执行的对象
  5. 将清洗过的路由表和前端存在的路由表合并
  6. 重载路由表,完成

其实核心在上面的第 4 条。根据项目 issue 里作者和其他人提供的方法,有两种映射表的创建方式:

  1. 前端创建创建一份静态的路由组件映射表
  2. 根据后端返回的路由表动态替换

我个人倾向于向后端录入一份路由表,然后再动态匹配。这样子只需要维护一份路由表,而不是一份路由表和一份路由组件映射表。

阅读更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×