我在 Nuxt 3 项目里写了 error.vue 页面,也配置了 app.vue 里的 onErrorCaptured,但页面报错时还是直接白屏,没走我的错误处理逻辑,这是为啥?
我试过在 pages/error.vue 里写组件,也试过在 plugins 里加 errorHandler,但好像都没触发。比如下面这个异步请求出错:
const { data } = await useFetch('/api/fake-endpoint')
控制台报 404 错误,但 error.vue 根本没显示,是我漏了什么配置吗?
关键点是 Nuxt 3 的错误处理机制变了,现在推荐直接用 nuxt.config.js 来配置:
另外 useFetch 需要这样用才能触发全局错误处理:
记得把 baseURL 设置正确,不然可能会因为跨域问题直接抛出未经处理的错误。这几个地方检查完应该就能正常走 error.vue 了,我当时就是这么解决的。