Vue.js@2.6.10更新內(nèi)置錯誤處機(jī)制Fundebug同步支持相應(yīng)錯誤監(jiān)控
Vue.js 從誕生至今已經(jīng) 5 年,尤大在今年 2 月份發(fā)布了重大更新,即Vue 2.6。更新包括新增 scoped slot 語法、性能提升、動態(tài)指令參數(shù)等等。其中我們最關(guān)注的是錯誤處理。
異步錯誤處理
Vue 的內(nèi)置錯誤處理機(jī)制(組件內(nèi) errorCaptured hook 和全局 errorHandler hook)現(xiàn)在也會捕獲 v-on 處理程序內(nèi)部的錯誤。此外,如果任意一個生命周期 hook 或事件處理程序執(zhí)行了異步操作,現(xiàn)在可以從函數(shù)中返回一個 Promise,Promise 鏈中任何一個未被捕獲的錯誤都會被發(fā)送給錯誤處理程序。如果使用了 async/await,則會變得更加容易,因?yàn)楫惒胶瘮?shù)隱式返回 Promise:
export default {
async mounted() {
// if an async error is thrown here, it now will get
// caught by errorCaptured and Vue.config.errorHandler
this.posts = await api.getPosts();
}
};
根據(jù)官方介紹,錯誤處理的改進(jìn)包括兩個方面:
捕獲 v-on 處理程序內(nèi)部的錯誤異步 Promise 錯誤
Fundebug作為最專業(yè)的 BUG(錯誤)監(jiān)控服務(wù)平臺,已經(jīng)服務(wù)數(shù)千家企業(yè),數(shù)萬名開發(fā)者。據(jù)統(tǒng)計,所有的前端項(xiàng)目中,有22.5%使用 Vue.js 開發(fā)。之前有使用 Vue.js 框架開發(fā)的客戶反饋有 bug 監(jiān)控不到。此次 Vue.js 更新,我們對JavaScript 的監(jiān)控插件做了相應(yīng)的更新,來更好地支持使用 Vue.js 框架開發(fā)的應(yīng)用錯誤的監(jiān)控。
錯誤監(jiān)控測試(TodoMVC)
1. 通過 v-on 定義事件
我們使用經(jīng)典的 todoMVC 項(xiàng)目來進(jìn)行測試。
首先接入 Fundebug 監(jiān)控插件,在 Fundebug 官網(wǎng)創(chuàng)建一個 Vue.js 監(jiān)控項(xiàng)目。

接下來根據(jù)接入代碼,安裝 Fundebug JavaScript 和 Vue 插件:
通過npm安裝fundebug-javascript與fundebug-vue
npm install fundebug-javascript fundebug-vue --save
配置apikey
import * as fundebug from "fundebug-javascript"; import fundebugVue from "fundebug-vue"; fundebug.apikey = "API-KEY"; fundebugVue(fundebug, Vue);
其中,獲取apikey需要免費(fèi)注冊帳號并且創(chuàng)建項(xiàng)目。
然后,我們對右下角的Clear Completed按鈕對應(yīng)的代碼進(jìn)行更改,通過v-on來定義點(diǎn)擊事件,然后對應(yīng)的deleteCompleted函數(shù)故意將todos寫成todo。
<button class="clear-completed" v-show="completed" v-on:click="deleteCompleted">
Clear Completed
</button>
deleteCompleted() {
this.todos = this.todo.filter(todo => !todo.completed);
}
點(diǎn)擊Clear Completed觸發(fā)報錯:

Fundebug 成功捕獲該錯誤:

2. 異步 Promise 錯誤
通過axios發(fā)送一個 GET 請求獲取數(shù)據(jù),然后將返回數(shù)據(jù)處理。假定不小心將data寫成了date,那么data.length會觸發(fā)錯誤。
deleteCompleted() {
return axios
.get("https://jsonplaceholder.typicode.com/todos/")
.then(response => {
let data = response.date;
let len = data.length;
});
}
程序運(yùn)行后,F(xiàn)undebug 成功捕獲該錯誤:

總結(jié)
Vue.js 更新到 2.6.10,對錯誤處理提供了更加強(qiáng)大的支持。Fundebug 的 JavaScript 監(jiān)控插件支持 Vue.js 項(xiàng)目中v-on和異步錯誤的監(jiān)控。
以上所述是小編給大家介紹的Vue.js@2.6.10更新內(nèi)置錯誤處理機(jī)制Fundebug同步支持相應(yīng)錯誤監(jiān)控,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Vue tagsview實(shí)現(xiàn)多頁簽導(dǎo)航功能流程詳解
基本上后臺管理系統(tǒng)都需要有多頁簽的功能,但是因?yàn)橐恍┠_手架項(xiàng)目基本都把這個功能給集成好了,導(dǎo)致在學(xué)習(xí)或者修改的時候不知道該如何下手。今天這篇文章就來聊一聊,vue-element-admin項(xiàng)目是如何實(shí)現(xiàn)多頁簽功能的2022-09-09
使用 Vue cli 3.0 構(gòu)建自定義組件庫的方法
本文旨在給大家提供一種構(gòu)建一個完整 UI 庫腳手架的思路。通過實(shí)例代碼給大家講解了使用 Vue cli 3.0 構(gòu)建自定義組件庫的方法,感興趣的朋友跟隨小編一起看看吧2019-04-04
vue+axios實(shí)現(xiàn)文件上傳的實(shí)時進(jìn)度條
最近用vue寫上傳的時候,遇到一個需求就是頁面上展示上傳的進(jìn)度條,之后寫過一次,但是用的是假交互,直接從0-100,今天分享一下用axios自帶的onUploadProgress來完成這個小需求,感興趣的朋友可以參考下2024-01-01
Vue如何解決子組件data從props中無法動態(tài)更新數(shù)據(jù)問題
這篇文章主要介紹了Vue如何解決子組件data從props中無法動態(tài)更新數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
vue?cli?局部混入mixin和全局混入mixin的過程
這篇文章主要介紹了vue?cli?局部混入mixin和全局混入mixin的過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
vue-infinite-loading2.0 中文文檔詳解
本篇文章主要介紹了vue-infinite-loading2.0 中文文檔詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
element中el-container容器與div布局區(qū)分詳解
這篇文章主要介紹了element中el-container容器與div布局區(qū)分詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05

