nuxt logo

ドキュメント翻訳(非公式)

Nuxt.js
Version:v3.17

<NuxtErrorBoundary>

<NuxtErrorBoundary> コンポーネントは、デフォルトスロットで発生するクライアントサイドのエラーを処理します。

<NuxtErrorBoundary> は内部で Vue の onErrorCaptured フックを使用しています。

イベント

  • @error: コンポーネントのデフォルトスロットがエラーをスローしたときに発生するイベント。

    <template>
      <NuxtErrorBoundary @error="logSomeError">
        <!-- ... -->
      </NuxtErrorBoundary>
    </template>
    

スロット

  • #error: エラーが発生した場合に表示するフォールバックコンテンツを指定します。

      <template>
        <NuxtErrorBoundary>
          <!-- ... -->
          <template #error="{ error, clearError }">
            <p>エラーが発生しました: {{ error }}</p>
    
            <button @click="clearError">エラーをクリア</button>
          </template>
        </NuxtErrorBoundary>
      </template>
    
こちらも参照 getting-started > error-handling

スクリプト内での errorclearError へのアクセス

コンポーネントのスクリプト内で errorclearError プロパティに以下のようにアクセスできます:

<template>
  <NuxtErrorBoundary ref="errorBoundary">
    <!-- ... -->
  </NuxtErrorBoundary>
</template>

<script setup lang="ts">
const errorBoundary = useTemplateRef('errorBoundary')

// errorBoundary.value?.error
// errorBoundary.value?.clearError()
</script>