<NuxtIsland>
Nuxtは、クライアント側のJSなしで非インタラクティブなコンポーネントをレンダリングするための<NuxtIsland>コンポーネントを提供します。
アイランドコンポーネントをレンダリングする際、アイランドコンポーネントの内容は静的であるため、クライアント側にはJSがダウンロードされません。
アイランドコンポーネントのプロップスを変更すると、アイランドコンポーネントの再レンダリングのために再フェッチがトリガーされます。
アプリケーションのグローバルスタイルはレスポンスと共に送信されます。
サーバー専用コンポーネントは内部で<NuxtIsland>を使用します。
Props
name: レンダリングするコンポーネントの名前。- type:
string - required
- type:
lazy: コンポーネントを非ブロッキングにします。- type:
boolean - default:
false
- type:
props: レンダリングするコンポーネントに送信するプロップス。- type:
Record<string, any>
- type:
source: レンダリングするアイランドを呼び出すリモートソース。- type:
string
- type:
- dangerouslyLoadClientComponents: リモートソースからコンポーネントをロードするために必要です。
- type:
boolean - default:
false
- type:
リモートアイランドは、nuxt.configでexperimental.componentIslandsを'local+remote'にする必要があります。リモートサーバーのJavaScriptを信頼できないため、dangerouslyLoadClientComponentsを有効にすることは強く推奨されません。
デフォルトでは、コンポーネントアイランドは~/components/islands/ディレクトリからスキャンされます。したがって、~/components/islands/MyIsland.vueコンポーネントは<NuxtIsland name="MyIsland" />でレンダリングできます。
Slots
スロットは宣言されていればアイランドコンポーネントに渡すことができます。
すべてのスロットはインタラクティブです。親コンポーネントがそれを提供するためです。
いくつかのスロットは特別なケースのためにNuxtIslandに予約されています。
#fallback: アイランドがロードされる前(コンポーネントが遅延している場合)またはNuxtIslandがコンポーネントのフェッチに失敗した場合にレンダリングされるコンテンツを指定します。
Ref
refresh()- type:
() => Promise<void> - description: サーバーコンポーネントを再フェッチして強制的に再フェッチします。
- type:
Events
error- parameters:
- error:
- type:
unknown
- type:
- error:
- description:
NuxtIslandが新しいアイランドのフェッチに失敗したときに発生します。
- parameters:
※このページは Nuxt.js 公式ドキュメントの翻訳ページです。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/4.x/api/components/nuxt-island