vue3 后台管理框架geeker admin 登录首页前的路由拦截

0 环境

1 文档

geeker admin官方文档

element-plus官方文档

vue router官方文档

2 需要的文件位置

  • src/routers/index.ts
  • src/views/login/components/LoginForm.vue

3 路由拦截

登录首页前的准备,动态路由的添加、清空 tabs、keepAlive 数据,前面这些工作完成后,很多时候会认为已经ok了,会直接跳转到首页,其实还漏了一步就是路由拦截。代码如下图:

首先获取了**useUserStore()**和 useAuthStore() ,useUserStore 主要是存的token和用户信息,useAuthStore主要是存权限相关数据。如下图所示:

1.NProgress 开始和2.动态设置标题 很容易理解,继续往下,3.判断是访问登陆页(to.path.toLocaleLowerCase() === LOGIN_URL) ,由于router.push 跳转到home/index ,那么to.path == home/index 。不等于LOGIN_URL ,继续往下,4.判断不在白名单中 ,继续往下走,5.若是token不存在,会跳转到登录页,因为在跳转到首页前,已经设有token ,那么继续往下,6.如果没有菜单列表,就重新请求菜单列表并添加动态路由 ,这里的判断也是很有必要的,因为动态路由是之后的核心,很多场景也会用到,比如刷新路由时,pinia动态路由没有做持久化,这里就会重新初始化动态路由,然后放行,跳转到目标path,当然你若是想路由持久化,那么需要在store中改动一下即可。这里我们的菜单列表是有的,到了7.将to.name存到 routerName中,做按钮权限筛选 ,然后放行,其实在跳转到home/index的过程中,比如会将动态路由和侧边栏菜单做一下处理等一系列操作,之后才真正的看到了欢迎你的界面。

4 流程图

流程图

5 总结

登录首页前的路由拦截,一个以防万一,还有就是做一些有必要的操作。这里了解即可。

相关推荐
迅猛龙办公室13 小时前
python实现简单进度条
java·前端·python
斯内普吖13 小时前
(开源)宠物饲养系统实战指南 基于 Java + SSM + Vue + MySQL
java·vue.js·mysql·开源·宠物
Rosanci13 小时前
Codex 下载与本地部署实战:从安装到运行全流程指南
开发语言·前端·算法·chatgpt·codex
zhangzeyuaaa13 小时前
深入 Ruby:Block、Proc、Lambda 核心区别与最佳实践
开发语言·前端·ruby
liangshanbo121514 小时前
前端高级面试题:WebSocket 双向流式通信怎么设计?
前端·websocket·网络协议
可乐鸡翅yeah_14 小时前
新手梳理:HLS 线上问题,哪些该提给 CDN,哪些该找后端切片服务
开发语言·前端·javascript·vue.js·网络协议·http·m3u8在线
zwd200514 小时前
Manim arrange 和 arrange_in_grid 用法详解:buff、aligned_edge、rows/cols(0.21.0 实测)
前端·python·edge
Q264336502314 小时前
【有源码】基于SpringBoot+Vue的博物馆展览与服务一体化平台-java博物馆数字化展品展示与交互平台设计
java·vue.js·spring boot·spring·毕业设计·javaweb·课程设计
小小龙学IT14 小时前
Go 语言 reflect 反射包深度解析:从 Type/Value 到三大定律与工业实践
前端·golang
小溪学编程14 小时前
C语言篇:枚举类型
java·c语言·前端