场景:当重复点击同一个路由菜单的时候,如果当前的路由路径与要跳转的路径相同时,就会报错如下。
解决方法:
方法一:在router.js文件添加跳转判断
// 解决重复点击导航时,控制台出现报错 ---亦可在跳转时做判断
const VueRouterPush = VueRouter.prototype.push
VueRouter.prototype.push = function push (to) {
return VueRouterPush.call(this, to).catch(err => err)
}
方法二:在路由跳转的时候判断跳转路由和当前路由是否相同,当页面的路由和跳转的路由不一致时才跳转,同时也要判断重定向的情况下的场景
clickMenu(item) {
// 判断是否跳转路由和当前路由是否一致,避免重复跳转产生问题 ---亦可在路由修改原型配置
// 当页面的路由和跳转的路由不一致才跳转
if (this.$route.path !== item.path && !(this.$route.path === '/home' && item.path === '/')) {
this.$router.push({ path: item.path });
}
},