它的意思是 避免到当前位置的冗余导航。
简单来说就是重复触发了同一个路由。
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err)
}
我们只需在router/index中,或者在main.js中全局加入这几行代码,就能完美解决触发同一路由,跳转冗余的问题;
为了避免这个错误的出现,使用上述代码对`VueRouter.prototype.push`进行替换。
这段代码的作用是:
将原始的`push`方法保存到`originalPush`变量中,然后在新的`push`方法中调用原始的`push`方法,并捕获并忽略`NavigationDuplicated`错误。
这样,当尝试导航到当前已经处于活动状态的路由时,不会抛出错误,而是会直接忽略该导航操作。