diff --git a/src/api/options-lifecycle.md b/src/api/options-lifecycle.md index 52608930d..5ead42812 100644 --- a/src/api/options-lifecycle.md +++ b/src/api/options-lifecycle.md @@ -215,6 +215,12 @@ - `errrorCaptured` フックで `false` を返すと、エラーがそれ以上伝搬しないようにできます。これは要するに「このエラーは処理済みなので無視してください」ということです。このエラーに対して、追加の `errorCaptured` フックや `app.config.errorHandler` が呼び出されるのを防ぎます。 + **エラーの捕捉に関する注意事項** + + - 非同期の `setup()` 関数(トップレベルの `await` を持つ)を持つコンポーネントでは、たとえ `setup()` がエラーをスローしても、Vue は**常に**コンポーネントのテンプレートをレンダリングしようとします。これにより、レンダリング中にコンポーネントのテンプレートが失敗した `setup()` コンテキストの存在しないプロパティにアクセスしようとする可能性があるため、エラーが増える可能性があります。このようなコンポーネントのエラーを捕捉する場合は、失敗した非同期 `setup() `(常に最初に発生します)と失敗したレンダリング処理の両方からのエラーを処理できるように準備してください。 + + - `` の奥深くにある親コンポーネントでエラーになった子コンポーネントを置き換えると、SSR でハイドレーションミスマッチが発生します。その代わりに、子コンポーネントの `setup()` からスローされる可能性のあるロジックを別の関数に分離し、親コンポーネントの `setup()` の中で実行するようにしてください。これにより、実行プロセスを安全に `try/catch` し、実際の子コンポーネントをレンダリングする前に必要に応じて置き換えを行うことができます。 + ## renderTracked {#rendertracked} コンポーネントのレンダーエフェクトによってリアクティブな依存関係が追跡されたときに呼び出されます。