渲染 Island 组件时,Island 组件的内容是静态的,因此客户端不会下载任何 JS。
更改 Island 组件的 props 会触发 Island 组件的重新获取(refetch)以再次渲染它。
<NuxtIsland>name : 要渲染的组件的名称。stringlazy: 使组件非阻塞。booleanfalseprops: 要发送到要渲染的组件的 Props。Record<string, any>source: 用于调用 Island 进行渲染的远程源。stringbooleanfalsenuxt.config 中将 experimental.componentIslands 设置为 'local+remote'。source 属性从远程服务器渲染内容本质上是危险的。当你指定一个远程 source 时,你完全信任该服务器提供将直接在你的应用程序中渲染的安全 HTML 内容。这类似于使用带有外部内容的 v-html——远程服务器可以注入任何 HTML,包括潜在的恶意内容。仅将 source 用于你完全信任和控制的服务器。dangerouslyLoadClientComponents 属性控制着额外的风险层:是否也从远程源下载和执行客户端组件。即使禁用了 dangerouslyLoadClientComponents(默认值),你仍然需要信任远程服务器的 HTML 输出。~/components/islands/ 目录扫描。因此,~/components/islands/MyIsland.vue 组件可以使用 <NuxtIsland name="MyIsland" /> 渲染。如果声明了插槽,则可以将插槽传递给 Island 组件。
每个插槽都是交互式的,因为提供它的组件是父组件。
一些插槽是为特殊情况保留给 NuxtIsland 的。
#fallback: 指定在 Island 加载之前(如果组件是 lazy 的)或 NuxtIsland 无法获取组件时渲染的内容。refresh()() => Promise<void>errorunknownNuxtIsland 无法获取新 Island 时触发。