vue router连续点击多次路由报错根本原因和解决方法
生活随笔
收集整理的這篇文章主要介紹了
vue router连续点击多次路由报错根本原因和解决方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原因:
vue-router 升級到 3.1.x 后,重復點擊導航時,控制臺出現報錯 ,vue router ≥ v3.1 后 ,回調形式改成 promise api 了,返回的是 promise,如果沒有捕獲到錯誤,控制臺始終會出現警告。
解決方法:
1在 router 文件夾下 重寫push和replace方法:
// 先把VueRouter原型對象的push replace 方法保存一份 let originPush=VueRouter.prototype.push; let originReplace=VueRouter.prototype.replace; // 重寫push方法 第一個參數 VueRouter.prototype.push=function(location,resolve,reject){// console.log(this);//實例// 判斷如果成功或失敗回調已經傳了if(resolve&&reject){// call 調用函數一次 改變this指向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,()=>{},()=>{})}2補齊router.push()的第三個參數
this.$router.push(route, () => {}, (e) => {console.log('輸出報錯',e)}總結
以上是生活随笔為你收集整理的vue router连续点击多次路由报错根本原因和解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 07-----关于ffmpeg Inva
- 下一篇: html5绘制圣诞树,【Html5】Ja