這篇文章將為大家詳細(xì)講解有關(guān)Vue.js@2.6.10更新內(nèi)置錯誤處機制Fundebug同步支持相應(yīng)錯誤監(jiān)控的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
為企業(yè)提供網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、網(wǎng)站優(yōu)化、成都營銷網(wǎng)站建設(shè)、競價托管、品牌運營等營銷獲客服務(wù)。創(chuàng)新互聯(lián)公司擁有網(wǎng)絡(luò)營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術(shù)實力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認(rèn)可!
Vue.js 從誕生至今已經(jīng) 5 年,尤大在今年 2 月份發(fā)布了重大更新,即Vue 2.6。更新包括新增 scoped slot 語法、性能提升、動態(tài)指令參數(shù)等等。其中我們最關(guān)注的是錯誤處理。
異步錯誤處理
Vue 的內(nèi)置錯誤處理機制(組件內(nèi) errorCaptured hook 和全局 errorHandler hook)現(xiàn)在也會捕獲 v-on 處理程序內(nèi)部的錯誤。此外,如果任意一個生命周期 hook 或事件處理程序執(zhí)行了異步操作,現(xiàn)在可以從函數(shù)中返回一個 Promise,Promise 鏈中任何一個未被捕獲的錯誤都會被發(fā)送給錯誤處理程序。如果使用了 async/await,則會變得更加容易,因為異步函數(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ù)官方介紹,錯誤處理的改進包括兩個方面:
捕獲 v-on 處理程序內(nèi)部的錯誤異步 Promise 錯誤
Fundebug作為最專業(yè)的 BUG(錯誤)監(jiān)控服務(wù)平臺,已經(jīng)服務(wù)數(shù)千家企業(yè),數(shù)萬名開發(fā)者。據(jù)統(tǒ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 項目來進行測試。
首先接入 Fundebug 監(jiān)控插件,在 Fundebug 官網(wǎng)創(chuàng)建一個 Vue.js 監(jiān)控項目。
接下來根據(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需要免費注冊帳號并且創(chuàng)建項目。
然后,我們對右下角的Clear Completed
按鈕對應(yīng)的代碼進行更改,通過v-on
來定義點擊事件,然后對應(yīng)的deleteCompleted
函數(shù)故意將todos
寫成todo
。
deleteCompleted() { this.todos = this.todo.filter(todo => !todo.completed); }
點擊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; }); }
程序運行后,F(xiàn)undebug 成功捕獲該錯誤:
關(guān)于“Vue.js@2.6.10更新內(nèi)置錯誤處機制Fundebug同步支持相應(yīng)錯誤監(jiān)控的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。