出现的情况
写vue时,当使用编程式导航多次点击跳转时会出现
原因
因为编程式this.$router.push或者this.$router.replace的返回值是一个Promise对象,所以需要处理异常,需要有成功回调和失败回调
解决方案
在目录router的index.js中重写push和replace方法
let originPush=VueRouter.prototype.push;
let originReplace=VueRouter.prototype.replace;
VueRouter.prototype.push=function(location,resolve,reject){
if(resolve&&reject){
originPush.call(this,location,resolve,reject);
}else{
originPush.call(this,location,()=>{},()=>{})
}
}
VueRouter.prototype.replace=function(location,resolve,reject){
if(resolve&&reject){
originReplace.call(this,location,resolve,reject);
}else{
originReplace.call(this,location,()=>{},()=>{})
}
}