路由守卫
VEF 的路由守卫并不鼓励你在每个页面手写 beforeLoad。
更推荐把守卫职责集中在 createLayoutRouteOptions() 这一层。
它实际守了什么
布局路由会统一处理:
- 未登录重定向到登录页
- 拉取用户信息
- 建立菜单路径映射
- 当前路径是否属于授权菜单
- 无权限跳转到
/access-denied
为什么这样更稳
因为后台系统的页面权限通常不是“某个页面自己说了算”,而是:
- 当前用户信息
- 菜单树
- 权限点
- 登录状态
共同决定的。
把这些守卫分散到每个业务页,只会让维护越来越乱。
推荐模式
- 根路由不做认证守卫
- 布局路由负责认证与菜单守卫
- 业务页只关心页面业务自身
一个补充建议
按钮权限和页面权限不要混用:
- 页面能不能进,交给布局守卫
- 页面里某个按钮能不能点,交给
PermissionGate