[Vue]防止路由重复跳转
[Vue]防止路由重复跳转
// 获取当前路由的原始路径(包括重定向的处理)
const currentPath = this.$route.redirectedFrom || this.$route.path;
// 判断目标路径是否与当前路径相同
if (currentPath !== item.url) {
this.$router.push({ path: item.url });
} else {
console.log('目标页面与当前页面相同,不进行跳转');
}
this.$route.redirectedFrom
重定向的来源
this.$route.path
this.$route.path
:这是当前路由的路径(不包括查询参数和哈希)。它表示的是当前页面的实际路径,比如 /strategy/security-policy。当路由发生重定向时,this.$route.path
会反映最终的目标路径(即重定向后的路径)
this.$route.fullPath
这是当前路由的完整路径,包含路径、查询参数和哈希。例如,/strategy/security-policy?id=123#section1。如果路由发生了重定向,fullPath 也会是重定向后的路径。