当前位置: 首页 > news >正文

前端路由设置

构建一个健壮的前端路由系统,不仅仅是把页面配置进去,更要考虑层级结构、权限控制、用户体验(重定向)以及异常兜底(404)。

一、路由分类(层级结构)

1. 第一层(顶层)

  • 区分“无需登录页面”(如登录页)和“需登录业务页”(如后台主界面)
  • 示例配置:
    {path:"/login",component:"LoginPage"},

2. 第二层(业务层)

  • 加载全局 Layout(侧边栏、Header),并进行权限校验
  • 示例配置:
    {path:"/",component:"@/widgets/MainLayout",routes:[{path:"/",redirect:"/dashboard"},{path:"/dashboard",component:"DashboardPage",wrappers:["@/wrappers/auth"],},// 其他业务页面...]}
  • 路由守卫(auth Wrapper)实现:
    import{Navigate,Outlet,useLocation}from"umi";import{isUserLoggedIn}from"@/shared/utils/auth";/** * 路由守卫(第一道防线) * 拦截没有 Token 的用户,并重定向到登录页,传递 reason=no_auth */exportdefault()=>{constlocation=useLocation();constisLogin=isUserLoggedIn();if(isLogin){return<Outlet/>;}else{// 构造目标 URL// 1. redirect: 登录成功后要跳回的地方// 2. reason=no_auth: 告诉登录页,这是因为没登录被拦截过来的constcurrentPath=encodeURIComponent(location.pathname+location.search);consttargetUrl=`/login?redirect=${currentPath}&reason=no_auth`;return<Navigate to={targetUrl}replace/>;}};

3. 第三层(功能层)

  • 具体的业务页面、重定向规则、内部 404
  • 示例配置:
    {path:"*",component:"404"},

二、路由书写顺序

  • 路由匹配是“从上到下”的 (Order Matters),路由器会像 switch 语句一样,从第一行开始找
  • 错误做法:把 path: ‘/’ 放在 path: ‘/login’ 前面,且没有加 exact
  • 后果:所有页面都会匹配到 /,导致登录页可能渲染不出来或者被 Layout 包裹

三、权限校验

  • 使用 Umi Wrappers (高阶组件)
  • 配置方式:在路由配置中添加wrappers: ['@/wrappers/auth']
  • 执行逻辑:路由匹配到该层级时,先执行 Wrapper。如果 Wrapper 判断未登录,直接跳转,主 Layout 连加载的机会都没有,彻底杜绝空白或闪屏。
http://www.cnnetsun.cn/news/190826.html

相关文章:

  • 前端分角色控制权限
  • WorkshopDL完整教程:零基础掌握Steam创意工坊下载技巧
  • BetterNCM插件使用全攻略:解锁网易云音乐隐藏功能
  • 3个技巧轻松解决图像标签管理工具的界面显示问题
  • WaveTools鸣潮工具箱终极指南:3大核心功能快速提升游戏体验
  • SD-PPP:让Photoshop拥有AI绘画能力的完整指南
  • BlenderKit实战宝典:3D创作效率倍增的秘诀
  • 革命性突破:零基础掌握SD-PPP实现Photoshop与AI绘图的无缝融合
  • springboot基于vue的一鸣企业员工人事考勤工资管理系统的设计与实现_cg88z7k0
  • NSC_BUILDER终极指南:掌握Switch文件管理的全能工具
  • springboot基于vue的动漫服装租赁妆造服务平台的设计与实践 _8a6262a0
  • 【电力系统】大规模新能源并网下的火电机组深度调峰经济调度附Matlab代码和论文
  • 5步掌握Audiveris:从乐谱图片到数字音乐的终极指南
  • 原神祈愿记录终极导出教程:5分钟搞定你的抽卡数据分析
  • Hidden Bar:Mac菜单栏终极清理指南,5分钟告别拥挤烦恼![特殊字符]
  • 文档下载革命:kill-doc工具5大核心技巧彻底告别繁琐流程
  • 如何快速实现Figma到After Effects转换:设计师必备的AEUX插件使用指南
  • 突破传统边界:用LabVIEW颠覆STM32开发的革命性实践
  • RS485偏置电阻配置方法:保证空闲状态通俗解释
  • 革命性AI绘图与Photoshop高效协作解决方案
  • LRC歌词制作工具:3分钟掌握专业级歌词同步技术
  • FF14动画跳过插件终极指南:告别重复副本动画
  • Switch文件管理终极指南:NSC_BUILDER完全操作手册
  • 8746253
  • 2025终极指南:B站抽奖自动化助手,高效提升中奖率的实战手册
  • 通过虚拟串口软件简化设备调试流程:实用技巧
  • Switch大气层系统完整教程:从零配置到专业优化
  • Figma中文插件终极指南:设计师必备的界面翻译解决方案
  • FigmaCN终极指南:如何让专业设计工具说中文
  • Koalageddon终极指南:5步解锁全平台游戏DLC的完整教程