如下官方api說明errorHandler-0:

先看下調(diào)用結(jié)果:我們在一個組件的生命周期里面運(yùn)行一段錯誤代碼如下圖:errorHandler-1

看下結(jié)果:這是未加errorHandler的結(jié)果,很明顯變量不存在,代碼錯誤如圖errorHandler-2,可能會阻塞代碼繼續(xù)執(zhí)行下去,導(dǎo)致網(wǎng)頁崩潰。我們通常處理未知代碼時會用到try.....catch,來避免這種情況。沒錯vue只是加了一個統(tǒng)一處理處,使用起來更方便。加過errorHandler之后的運(yùn)行代碼看下如圖errorHandler-3,errorHandler-4

errorHandler-3在main.js里面加如errorHandler函數(shù):
errorHandler-4是運(yùn)行結(jié)果:


接下來進(jìn)入源碼里面怎么做的,我們在做其他其他項目也可以借鑒下errorHandler-5:

如果你定義了errorHandler函數(shù),則會調(diào)你的方法??聪履睦锒颊{(diào)用了globalHandleError,在當(dāng)前文件里面handleError調(diào)用了errorHandler-6,看下handleError函數(shù)的調(diào)用,如果所料不錯,正如api里面介紹的,生命周期鉤子里,Vue 自定義事件處理函數(shù),v-on?DOM 監(jiān)聽器內(nèi)部會調(diào)用。一個一個來找下,

指令里面errorHandler-7:

nextTick里面errorHandler-8:

watch里面:errorHandler-9

還有很多。