You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt客户端错误仅展示错误布局不跳转错误页面如何解决

Nuxt 全局客户端错误自动跳转/error路由解决方案

问题说明

当Nuxt客户端运行时发生未捕获错误(比如created生命周期钩子中调用未定义方法ddd())时,控制台会抛出如下错误:

client.js:103 ReferenceError: ddd is not defined

默认只会渲染局部错误布局,不会自动跳转专属错误路由,可通过以下方案实现全场景错误自动跳转。

实现步骤

  • 配置全局错误捕获插件

Nuxt3可直接在项目下新建plugins/error.global.ts文件,Nuxt2新建plugins/error.js文件,代码如下:

Nuxt3 代码示例

// plugins/error.global.ts
export default defineNuxtPlugin((nuxtApp) => {
  // 捕获Vue层运行时错误
  nuxtApp.vueApp.config.errorHandler = (err) => {
    console.error('全局捕获Vue错误:', err)
    navigateTo('/error', { replace: true })
  }

  if (process.client) {
    // 捕获window层面普通JS错误
    window.addEventListener('error', (event) => {
      event.preventDefault()
      console.error('全局JS错误:', event.error)
      navigateTo('/error', { replace: true })
    })

    // 捕获未处理的异步Promise错误
    window.addEventListener('unhandledrejection', (event) => {
      event.preventDefault()
      console.error('未处理异步错误:', event.reason)
      navigateTo('/error', { replace: true })
    })
  }
})

Nuxt3中*.global.ts后缀的插件会自动全局注册,无需额外配置。

Nuxt2 代码示例

// plugins/error.js
import Vue from 'vue'

export default ({ app, redirect }) => {
  if (process.client) {
    // 捕获Vue层运行时错误
    Vue.config.errorHandler = (err) => {
      console.error('全局Vue错误:', err)
      redirect('/error')
    }

    // 捕获window层面普通JS错误
    window.addEventListener('error', (event) => {
      event.preventDefault()
      console.error('全局JS错误:', event.error)
      redirect('/error')
    })

    // 捕获未处理的异步Promise错误
    window.addEventListener('unhandledrejection', (event) => {
      event.preventDefault()
      console.error('未处理异步错误:', event.reason)
      redirect('/error')
    })
  }
}

Nuxt2需要在nuxt.config.js中注册插件:

// nuxt.config.js
export default {
  plugins: [
    '~/plugins/error.js'
  ]
}
  • 确认错误路由存在

确保项目pages目录下存在error.vue文件(Nuxt3也支持放在项目根目录下的error.vue),作为跳转后的错误展示页,可自行自定义UI和错误提示逻辑。

注意事项

该配置会覆盖Nuxt默认的错误处理逻辑,所有未捕获的客户端错误都会触发跳转,如果需要保留部分场景的局部错误布局展示,可在全局错误钩子中添加判断逻辑,过滤不需要跳转的错误类型。

内容的提问来源于stack exchange,提问作者mr_robot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:54:07