开发者社区> fundebug> 正文

Vue.js@2.6.10更新内置错误处机制,Fundebug同步支持相应错误监控

简介: 摘要: Fundebug 的 JavaScript 错误监控插件同步支持 Vue.js 异步错误监控。 Vue.js 从诞生至今已经 5 年,尤大在今年 2 月份发布了重大更新,即Vue 2.6。更新包括新增 scoped slot 语法、性能提升、动态指令参数等等。
+关注继续查看

摘要: Fundebug 的 JavaScript 错误监控插件同步支持 Vue.js 异步错误监控。

Vue.js 从诞生至今已经 5 年,尤大在今年 2 月份发布了重大更新,即Vue 2.6。更新包括新增 scoped slot 语法、性能提升、动态指令参数等等。其中我们最关注的是错误处理

异步错误处理

Vue 的内置错误处理机制(组件内 errorCaptured hook 和全局 errorHandler hook)现在也会捕获 v-on 处理程序内部的错误。此外,如果任意一个生命周期 hook 或事件处理程序执行了异步操作,现在可以从函数中返回一个 Promise,Promise 链中任何一个未被捕获的错误都会被发送给错误处理程序。如果使用了 async/await,则会变得更加容易,因为异步函数隐式返回 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();
    }
};

根据官方介绍,错误处理的改进包括两个方面:

  • 捕获 v-on 处理程序内部的错误
  • 异步 Promise 错误

Fundebug作为最专业的 BUG(错误)监控服务平台,已经服务数千家企业,数万名开发者。据统计,所有的前端项目中,有22.5%使用 Vue.js 开发。之前有使用 Vue.js 框架开发的客户反馈有 bug 监控不到。此次 Vue.js 更新,我们对JavaScript 的监控插件做了相应的更新,来更好地支持使用 Vue.js 框架开发的应用错误的监控。

错误监控测试(TodoMVC)

1. 通过 v-on 定义事件

我们使用经典的 todoMVC 项目来进行测试。

首先接入 Fundebug 监控插件,在 Fundebug 官网创建一个 Vue.js 监控项目。

接下来根据接入代码,安装 Fundebug JavaScript 和 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需要免费注册帐号并且创建项目

然后,我们对右下角的Clear Completed按钮对应的代码进行更改,通过v-on来定义点击事件,然后对应的deleteCompleted函数故意将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);
 }

点击Clear Completed触发报错:

Fundebug 成功捕获该错误:

2. 异步 Promise 错误

通过axios发送一个 GET 请求获取数据,然后将返回数据处理。假定不小心将data写成了date,那么data.length会触发错误。

deleteCompleted() {
    return axios
        .get("https://jsonplaceholder.typicode.com/todos/")
        .then(response => {
            let data = response.date;
            let len = data.length;
    });
}

程序运行后,Fundebug 成功捕获该错误:

总结

Vue.js 更新到 2.6.10,对错误处理提供了更加强大的支持。Fundebug 的 JavaScript 监控插件支持 Vue.js 项目中v-on和异步错误的监控。

版权声明

转载时请注明作者Fundebug以及本文地址:https://blog.fundebug.com/2019/05/13/fundebug-support-vue-2-6-10/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
前端学习案例13-js的执行机制2
前端学习案例13-js的执行机制2
12 0
前端学习案例12-js的执行机制1
前端学习案例12-js的执行机制1
14 0
前端学习案例1-js的执行机制
前端学习案例1-js的执行机制
12 0
js基础笔记学习12-类型检查
js基础笔记学习12-类型检查
14 0
【最全最详细】publiccmsCSS和JS引入无效的解决方法
【最全最详细】publiccmsCSS和JS引入无效的解决方法
28 0
解决vue.js数据修改影响列表原数据
解决vue.js数据修改影响列表原数据
149 0
Js 功能-切换功能 |学习笔记
快速学习 Js 功能-切换功能
33 0
多种方式实现js中的暂停功能
JavaScript里面没有sleep功能,只能曲线实现:
193 0
前端BUG录-使用VUE做飘屏功能因为:key设置错误造成异常动画
如果你是想看怎么做?那么你可以直接去看我之前写的Vue 实现弹幕效果。 正好这段时间内部在抽离常用组件,运营小姐姐最近迷上了飘屏功能,各种活动都要有个飘屏才罢休。然后就安排人抽离成组件了。 结果这个组件在同一个位置绊倒了两个人,那么今天我们来分析一下。
204 0
vue3 自己做一个轻量级状态管理,带跟踪功能,知道是谁改的,还能定位代码
因为vue3的状态都是 reactive 的形式,也就是 proxy,原本以为有自动跟踪的功能,但是后来发现,好像没有。
87 0
+关注
fundebug
一行代码搞定BUG监控!
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
JS 语言在引擎级别的执行过程
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多