跳到主要内容

路由守卫

VEF 的路由守卫并不鼓励你在每个页面手写 beforeLoad
更推荐把守卫职责集中在 createLayoutRouteOptions() 这一层。

它实际守了什么

布局路由会统一处理:

  1. 未登录重定向到登录页
  2. 拉取用户信息
  3. 建立菜单路径映射
  4. 当前路径是否属于授权菜单
  5. 无权限跳转到 /access-denied

为什么这样更稳

因为后台系统的页面权限通常不是“某个页面自己说了算”,而是:

  • 当前用户信息
  • 菜单树
  • 权限点
  • 登录状态

共同决定的。

把这些守卫分散到每个业务页,只会让维护越来越乱。

推荐模式

  • 根路由不做认证守卫
  • 布局路由负责认证与菜单守卫
  • 业务页只关心页面业务自身

一个补充建议

按钮权限和页面权限不要混用:

  • 页面能不能进,交给布局守卫
  • 页面里某个按钮能不能点,交给 PermissionGate