很多前端问题表面是“页面白屏”“跳转不对”“刷新后丢状态”,实际根源是初始化顺序混乱。用户进入页面时,应用可能需要恢复登录态、拉取安全配置、加载用户信息、判断权限、初始化全局设置,最后才渲染目标页面。任何一步没有定义清楚,都会出现偶发问题。

一、路由守卫只做必要判断

路由守卫适合做进入页面前必须完成的判断,比如是否需要登录、是否已有基础用户信息、是否具备访问权限。它不适合承载页面业务数据加载。业务数据应该由页面自己加载,否则守卫会变得越来越重,跳转链路也难以维护。

如果守卫里必须请求接口,要让失败路径清楚:认证失败去登录页,权限不足去无权限页,系统异常进入错误页或保留重试入口。不能让异常静默吞掉,让用户停在空白页面。

二、首屏要有明确等待态

初始化过程如果需要等待,就应该给用户一个稳定的等待态,而不是让页面先闪一下再跳走。尤其是认证恢复和用户信息加载,最好有统一的应用启动状态。这样页面不会在权限未知时提前渲染,也能避免组件内部重复处理“用户还没加载完”的临界状态。

首屏初始化要少做事,但必须把必须做的事排清楚。

三、刷新和直达页面要同样可靠

很多系统只在从首页点击进入时正常,用户刷新详情页或直接打开深链接就出问题。这说明页面依赖了上一个页面留下的内存状态。可恢复的状态可以放在路由参数、查询参数或全局 store;不可恢复的状态则要在页面加载时重新获取。

  • 认证和权限判断放在路由守卫或启动流程里。
  • 业务数据加载放在页面或业务容器里。
  • 深链接页面不能依赖上一个页面的临时状态。
  • 异常路径要有明确反馈,不要停留在空白页面。

前端路由不是简单切换组件,而是用户进入系统的控制面。把初始化顺序设计清楚,很多偶发问题会自然减少。