javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > 前端菜单权限

前端菜单权限几种方案的使用及对比

作者:dreams_dream

在当今的Web应用开发中,权限控制是一个不可或缺的部分,这篇文章主要介绍了前端菜单权限两种方案的使用及对比,文中通过代码介绍的非常详细,需要的朋友可以参考下

方案一:前端全量配置路由表 + 后端返回权限码

思路

优点

缺点

方案二:后端返回菜单/路由结构,前端动态生成路由

思路

优点

缺点

建议

混合方案(很多企业在用)

// 路由组件映射表
const componentMap = {
  'dashboard': () => import('@/views/Dashboard/index.vue'),
  'system/user': () => import('@/views/System/User.vue'),
  // ...
}

// 动态注册
menus.forEach(menu => {
  router.addRoute('Layout', {
    path: menu.path,
    name: menu.name,
    component: componentMap[menu.component]
  })
})

方案一和方案二速度上性能比较

性能对比

对比项方案一:前端全量配置 + 权限过滤方案二:后端返回菜单/路由结构
首屏速度较快。路由表已经在打包时编译进前端代码,进入系统时只需拿到权限码做一次本地过滤即可。稍慢。登录后需要额外请求菜单数据,再根据数据动态注册路由,才能进入页面。
网络请求登录接口 + 权限接口(可合并),不需要额外的菜单结构接口。登录接口 + 菜单接口(必需),多一次网络往返。
渲染延迟几乎无延迟,过滤完成即可渲染。需要等菜单接口返回并处理完动态路由后才能渲染。
打包体积稍大(包含所有路由组件),但可配合懒加载减少首屏体积。可能稍小(只加载基础路由),但动态加载组件时会有额外延迟。

总结

为什么混合方案比方案二能提升速度那?

组件路径提前确定,避免运行时查找失败

路由注册逻辑更轻量

首屏渲染提前启动

打包优化更好

总结

混合方案的提速点在于:

到此这篇关于前端菜单权限几种方案的使用及对比的文章就介绍到这了,更多相关前端菜单权限内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文