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

记录 vue-router 跳转到第一个有权限的菜单的实现方式

场景描述

需要实现一个动态路由,并且点击进来加载的页面是第一个有权限的页面。

实现思路

在路由守卫 router.beforeEach 钩子中加入跳转逻辑,从获取的动态路由中匹配第一个加上即可。

router.beforeEach((to, from, next) => {
	 if (getToken()) {
		// 略过请求动态路由的部分
		const accessRoutes = {};
		 router.addRoutes(accessRoutes);
		 next({ path: accessRoutes[0].path + '/' + accessRoutes[0].children[0].path })
	} else {
		window.location.href = "/";
	}
})

扩展

如果要跳转到其他项目的页面,可以通过window.location.href来实现。

也有同学会使用window.open,这里不太推建使用,原因如下:

由于现代浏览器的安全策略,特别是对于弹窗窗口的限制,直接使用 window.open 可能会被浏览器阻止或放入通知中心,尤其是当它是由非用户直接操作触发的时候(比如响应鼠标点击以外的事件)。

关于 window.location.href 和 window.open 的区别,也贴在下面:

window.location.href:

  • 它会改变当前窗口的URL和加载新页面,相当于在当前标签页/窗口中进行页面重定向。
  • 当你设置 window.location.href 的值时,浏览器会立即停止当前页面的所有活动并开始加载新地址指向的页面。

window.open:

  • 它会在一个新的浏览器窗口或标签页中打开指定的URL,不会影响当前窗口的内容。
  • 如果没有指定窗口参数或者目标名称(例如 _blank),则默认在新窗口中打开链接。

http://www.kler.cn/a/294561.html

相关文章:

  • 论文阅读《机器人状态估计中的李群》
  • 树-好难-疑难_GPT
  • Pandas | 数据分析时将特定列转换为数字类型 float64 或 int64的方法
  • 一篇Spring Boot 笔记
  • wordpress实用功能A5资源网同款 隐藏下载框 支付框 需要登录才能查看隐藏的内容
  • 关于element-plus中el-table组件宽度一直连续不断增加的问题
  • 【大模型开发】传统向量模型 vs 重排序模型:原理、实现与应用
  • 欺诈文本分类检测(十二):模型导出与部署
  • 八大排序原来也不过如此
  • 【软件逆向】第27课,软件逆向安全工程师之(二)寄存器寻址,每天5分钟学习逆向吧!
  • 【MIT 6.5840/6.824】In Search of an Understandable Consensus Algorithm 学习笔记
  • 如何使用useMemo来优化React组件的性能?
  • 7、关于LoFTR
  • 三维布尔运算对不规范几何数据的兼容处理
  • Linux 中常用的 Vim 命令大全
  • [OpenCV] 数字图像处理 C++ 学习——13Canny边缘检测 附完整代码
  • 828华为云征文 | Flexus X 实例服务器网络性能深度评测
  • 使用PowerShell导出Exchange邮箱大小
  • docker-network
  • GatewayWorker框架的详解和应用
  • [建模已更新]2024数学建模国赛高教社杯A题:“板凳龙” 闹元宵 思路代码文章助攻手把手保姆级
  • Hive整合MySQL
  • tabBar设置底部菜单选项以及iconfont图标
  • Java学习第七天
  • 【功能实现】如何实现点击后跳转到顶部??
  • 57-java csrf防御方案