快速切换页面时控制台发生路由的错误

在Vue项目中,快速切换导航栏页面时控制台出现路由错误。原因是vue-router@3.0及以上版本的回调采用promise API,未正确处理可能导致错误。在main.js中通过捕获错误可解决此问题,但原理是路由回调问题。原文链接提供了更多详情。
摘要由CSDN通过智能技术生成

公司项目被测试出一个问题,就是在导航栏中快速切换页面时控制台会发生报错,大概是这样的(图是盗的,文末贴了大佬文章)

 啥意思呢?我查了一下:

报错原因没有定位到,但是项目还得继续啊,所以找到一个办法,在main.js中写入以下代码,实测有效:

import Router from 'vue-router'

const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}

然后解决!但是为什么?我在这里重述一下哈:是路由回调的问题。

vue-router@3.0及以上版本回调形式已经改成promise api的形式了,返回的是一个promise。如果路由地址跳转相同且没有捕获到错误,就会发生控制台报错。3.0以下版本不会发生这种问题。

还有其他的解决办法我没有尝试,欢迎各位补充指正,带我长知识呀~

原文地址:https://blog.csdn.net/weixin_47084275/article/details/108205775

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值