当我们开发完成上线之后 我们要怎么监听Vue组件的报错呢?
我们有三种方式,可以根据自己的业务逻辑来进行搭配使用
第一 监听下级组件的报错 errorCaptured 如果你返回值是false的话 就不会向上面传播
我们在一个组件中 写了一个报错
我们在App.vue中进行一个监听报错
// 监听下级组件的错误 返回 false会阻止向上传播
errorCaptured: (error, vm, info) => {
// error vm组件实列 info错误信息
console.log("errorCaptured-----", error, vm, info);
return false;
},
2、errorHandler 监听全局的Vue组件报错 如果是errorCaptured返回了 false那么就不会触发到这个
同样是上面的操作
我们在main.js中配置一下全局的
Vue.config.errorHandler = (error, vm, info) => {
console.log("errorHandler---------", error, vm, info);
}
3、如果我们要监听异步的报错 那么就使用window.onerror来监听,上面两个是无法监听到异步的报错的
我们在组件中写一个异步的报错
mounted() {
setTimeout(() => {
this.num();
}, 1000);
},
然后我们在App.vue中mounted生命周期监听一个 window.error
mounted() {
window.onerror = (mes, source, line, column, error) => {
// mes 报错信息, source 那个文件, line 第几行, column 第几列, error 错误的对象
console.info("window.onerror-------", mes, source, line, column, error);
};
},