vue-router有
一个内置保护机制,它会阻止不必要的重复导航,以提高性能并避免不必要的计算。
具体来说,错误信息中的就是试图访问的路径时,应用程序已经在当前这个路径上。因此,vue-router
检测到了这个重复的导航请求,就发出了警告。
通常情况下,这种警告并不需要特别处理,因为这只是一个优化措施,防止不必要的导航。但是如果你频繁遇到这种情况,可能需要检查触发导航的部分代码逻辑是否有必要进行调整,以避免不必要的导航请求。
如果调用了this.$router.push
,而这个方法在当前路由没有变化的情况下被调用,从而触发了警告。你可以检查路由跳转
方法,在执行导航之前判断当前的路由是否已经是目标路由,如果是的话就不再执行导航操作。这样可以避免这种警告信息。
1.直接在方法里进行判断阻止
goUser () {
const url = '/user/centred'
if (this.$route.path !== url) this.$router.push(url)
},
2.重写push方法增加catch输出
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push (location) {
return originalPush.call(this, location).catch(err => err)
}
因为他的保护机制导致前置守卫都没走就会报错警告,刚开始也是挺疑惑路由跳转居然没走守卫