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

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

阅读 139
评论 5月17日提问
    2 个回答

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

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

    差异点:

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

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

      评论 赞赏
        撰写回答

        登录后参与交流、获取后续更新提醒