当前位置:首页 > VUE

vue错误捕获实现

2026-03-08 01:32:50VUE

Vue 错误捕获的实现方法

全局错误捕获(Vue 2 & Vue 3)

通过 Vue.config.errorHandler 全局配置捕获组件渲染、事件处理器等未处理的错误:

Vue.config.errorHandler = function (err, vm, info) {
  console.error('全局捕获:', err, info);
  // 可上报错误至日志服务
};

Vue 3 中改为 app.config.errorHandler,用法类似。

生命周期钩子捕获

在组件内部使用 errorCaptured 钩子捕获子孙组件的错误(Vue 2.5+ 和 Vue 3):

export default {
  errorCaptured(err, vm, info) {
    console.error('组件级捕获:', err, info);
    return false; // 阻止错误继续向上传播
  }
}

异步错误捕获

通过 window.onerrorwindow.addEventListener('error') 捕获全局脚本错误:

window.addEventListener('error', event => {
  console.error('脚本错误:', event.error);
});

使用 unhandledrejection 捕获未处理的 Promise 异常:

window.addEventListener('unhandledrejection', event => {
  console.error('Promise 异常:', event.reason);
});

错误边界组件(Vue 3 推荐)

创建高阶组件包裹目标组件,通过 v-if 控制错误状态下的 UI 展示:

<template>
  <slot v-if="!hasError"></slot>
  <div v-else class="error-fallback">组件崩溃</div>
</template>

<script>
export default {
  data: () => ({ hasError: false }),
  errorCaptured() {
    this.hasError = true;
    return false;
  }
}
</script>

Axios 拦截器捕获

在请求拦截器中统一处理 HTTP 错误:

axios.interceptors.response.use(
  response => response,
  error => {
    console.error('请求错误:', error);
    return Promise.reject(error);
  }
);

注意事项

vue错误捕获实现

  • 生产环境应关闭 Vue 的警告提示:Vue.config.productionTip = false
  • 错误处理函数中避免抛出新错误
  • 重要业务错误建议实时上报至监控系统(如 Sentry)
  • 对于 SSR(Nuxt.js),需同时处理服务端和客户端的错误捕获

标签: 错误vue
分享给朋友:

相关文章

vue如何实现注册

vue如何实现注册

实现用户注册功能 在Vue中实现注册功能通常需要结合前端表单和后端API交互。以下是完整的实现方案: 创建注册表单组件 注册表单需要包含用户名、邮箱、密码等基本字段,并进行表单验证: <te…

vue实现签约合作弹窗

vue实现签约合作弹窗

实现签约合作弹窗的步骤 使用Vue实现签约合作弹窗可以通过组件化方式完成,结合模态框和表单交互逻辑。以下是具体实现方法: 1. 创建弹窗组件 新建一个Vue组件文件(如SignContractDia…

实现vue框架

实现vue框架

Vue框架的基本实现 Vue是一个渐进式JavaScript框架,用于构建用户界面。以下是实现Vue框架的基本步骤: 安装Vue 通过CDN引入Vue是最简单的方式: <script src…

vue实现选人

vue实现选人

实现选人功能的基本思路 在Vue中实现选人功能通常涉及以下核心环节:数据绑定、用户交互处理、状态管理以及界面渲染。以下是具体实现方法: 数据准备与组件结构 创建包含人员信息的数组,通常从API获取或…

vue实现api

vue实现api

Vue 实现 API 调用 在 Vue 中调用 API 通常涉及使用 axios 或 fetch 发送 HTTP 请求,并结合 Vue 的响应式特性管理数据。以下是常见的实现方式: 安装 axios…

vue实现翻页

vue实现翻页

Vue实现翻页功能 在Vue中实现翻页功能通常需要结合分页组件和数据请求逻辑。以下是常见的实现方法: 使用Element UI分页组件 安装Element UI后,可以直接使用其分页组件:…