首页 > 解决方案 > 如何捕获 vue 组件安装错误

问题描述

我有一个用例,我需要自己实例化组件并手动安装它们。我想捕捉实例化和挂载错误,但我找不到方法。我已经尝试了几乎所有我能想到的东西Vue.config.errorHandler,,,,vm.errrorHandlervm.errorCatcher在父母身上)......但没有任何运气。

我想知道为什么这不起作用?

try {
  const vm = new MyCustomComponent(); // this is having an error (no template for instance)
  vm.$mount();
} catch (e) {
  console.log(e); // this is never called
}

// manualy attaching the mounted component to the DOM myself afterward.

文档链接供参考:https ://vuejs.org/v2/api/#vm-mount

编辑:添加了一个小提琴:https ://jsfiddle.net/2pzmn3ue/

标签: vue.jsvue-component

解决方案


如果您查看 Vue 源代码,您会注意到这是一个警告,而不是错误。所以你应该使用Vue.config.warnHandler而不是errorHandler. 您的处理程序将采用 3 个参数 - 警告消息、组件实例和组件跟踪(不是堆栈跟踪)。


推荐阅读