前端路由是全部都由后端返回,还是后端返回对应角色下的权限,然后前端通过遍历的方式来修改当前路由呢?

在看vue-element-admin中有个权限验证,现在不知道这2者有啥区别,请大佬说说有什么好的方式来处理这个动态路由
https://panjiachen.github.io/...

阅读 4.3k
2 个回答

第一种后台返回路由,第二种后台返回权限。
共同点:

  • 两种方法都可以实现需求
  • 前端都要维护一份路由地址与模块文件地址的映射
  • 后段返回的数据一般都要再遍历做二次处理
  • 有关页面内元素(按钮)的权限都要另做处理
  • 技术点都会涉及路由守卫和路由鉴权

差异点:

  • 默认路由列表:方法一只维护home、login等无权限需求路由,其他路由需要后续通过接口和路由api:addRoutes动态添加;方法二需要维护一个全量的路由列表,不需要额外添加路由,通过配置每个路由的access数组来做鉴权。
  • 路由跳转:因为方法一返回的就是该用户权限下的路由,所以不需要再做权限鉴权;方法二需要。
  • 路由的自定义程度:方法一可以通过修改数据库的路由数据来自定义前端的菜单结构,因此也需要做一个实现路由重组的递归函数,拓展性更好;方法二针对的是菜单结构相对稳定的项目,一般不支持结构变动。
  • 返回报文:一般来说,返回报文大小 方法一比方法二要大

使用vue框架前后端分离的话需要前端维护一套路由表,因为路由表里需要你的模块路径来显示内容。前后端可以通过约定权限值来为每一个路由确定一个权限值,这样前端可以根据权限值来动态的操作内容的显示。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏