error.vue
error.vue 文件是 Nuxt 应用中的错误页面。
在你的应用生命周期中,一些错误可能会在运行时意外出现。在这种情况下,我们可以使用 error.vue
文件来覆盖默认的错误文件,从而美观地展示错误。
error.vue
<script setup lang="ts">
import type { NuxtError } from '#app'
const props = defineProps({
error: Object as () => NuxtError
})
</script>
<template>
<div>
<h1>{{ error.statusCode }}</h1>
<NuxtLink to="/">返回首页</NuxtLink>
</div>
</template>
尽管它被称为“错误页面”,但它并不是一个路由,不应该放置在你的
~/pages
目录下。出于同样的原因,你不应该在这个页面中使用 definePageMeta
。话虽如此,你仍然可以在错误文件中使用布局,通过利用 NuxtLayout
组件并指定布局的名称。错误页面有一个单一的属性 - error
,其中包含供你处理的错误信息。
error
对象提供了以下字段:
{
statusCode: number
fatal: boolean
unhandled: boolean
statusMessage?: string
data?: unknown
cause?: unknown
}
如果你的错误带有自定义字段,它们将会丢失;你应该将它们赋值给 data
字段:
throw createError({
statusCode: 404,
statusMessage: 'Page Not Found',
data: {
myCustomField: true
}
})