errorCaptured
2.5.0+ 新增
类型:(err: Error, vm: Component, info: string) => ?boolean
详细
当捕获一个来自子孙组件的错误时被调用。此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串。此钩子可以返回 false 以阻止该错误继续向上传播。
你可以在此钩子中修改组件的状态。因此在捕获错误时,在模板或渲染函数中有一个条件判断来绕过其它内容就很重要;不然该组件可能会进入一个无限的渲染循环。
错误传播规则
- 默认情况下,如果全局的 config.errorHandler 被定义,所有的错误仍会发送它,因此这些错误仍然会向单一的分析服务的地方进行汇报。
如果一个组件的继承或父级从属链路中存在多个 errorCaptured 钩子,则它们将会被相同的错误逐个唤起。
如果此 errorCaptured 钩子自身抛出了一个错误,则这个新错误和原本被捕获的错误都会发送给全局的 config.errorHandler。
一个 errorCaptured 钩子能够返回 false 以阻止错误继续向上传播。本质上是说“这个错误已经被搞定了且应该被忽略”。它会阻止其它任何会被这个错误唤起的 errorCaptured 钩子和全局的 config.errorHandler。
export default {
name: "PageNews",
data() {
return {
sanitizeHTML: sanitizeHTML,
list: [
{
id: "1",
title: "违反法律",
},
{
id: "2",
title: "时政敏感",
},
{
id: "3",
title: "广告行为",
},
{
id: "4",
title: "色情淫秽",
},
{
id: "5",
title: "血腥暴恐",
},
{
id: "6",
title: "低俗谩骂",
},
{
id: "7",
title: "攻击引战",
},
{
id: "8",
title: "造谣造假",
},
{
id: "9",
title: "其他行为",
},
],
commentList: [],
commentNum: this.data.detail
? this.$utils.filterNum(this.data.detail.comment)
: 0,
};
},
mounted() {
var script = document.createElement("script"); //创建一个script标签
script.type = "text/javascript";
script.src =
"https://cdn.bootcss.com/social-share.js/1.0.16/js/social-share.min.js";
document.getElementsByTagName("head")[0].appendChild(script);
if (this.$store.state.layout.user.id) {
this.getReportList();
}
},
methods: {
},
errorCaptured() {
return false;
},
};