replace和push写法一样
push方法错误:vue-router新增一个promise方法,需要得到返回值,vue-router的原型方法push方法在连续点击后会出现bug,需要重写push方法
解决:在route文件夹下的index.js配置路由文件中进行重写
//解法一:
let originPush = VueRouter.prototype.push;
VueRouter.prototype.push=function ( location, resolve,reject ){
if(resolve && reject){
originPush .call(this,location,resolve,reject);
}else{
originPush .call(this,location,() =>{ },() =>{ });
}
}
//解法二
//修改原型对象中的push方法
Router.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err)
}