Изучите Nuxt с коллекцией из 100+ советов!

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: 'Страница не найдена',
  data: {
    myCustomField: true
  }
})