<NuxtIsland>

源文件
Nuxt 提供了 <NuxtIsland> 组件,用于渲染非交互式组件,无需任何客户端 JS。

渲染 Island 组件时,Island 组件的内容是静态的,因此客户端不会下载任何 JS。

更改 Island 组件的 props 会触发对 Island 组件的重新获取以再次渲染它。

应用程序的全局样式与响应一起发送。
仅限服务器的组件在底层使用 <NuxtIsland>

属性

  • name : 要渲染的组件名称。
    • 类型string
    • 必填
  • lazy: 使组件非阻塞。
    • 类型: boolean
    • 默认值: false
  • props: 要发送到要渲染的组件的 props。
    • 类型: Record<string, any>
  • source: 用于调用要渲染的 Island 的远程源。
    • 类型string
  • dangerouslyLoadClientComponents: 加载远程源组件所需。
    • 类型: boolean
    • 默认值: false
远程 Islands 需要在您的 nuxt.config 中将 experimental.componentIslands 设置为 'local+remote'。强烈不建议启用 dangerouslyLoadClientComponents,因为您无法信任远程服务器的 JavaScript。
默认情况下,组件 Islands 从 ~/components/islands/ 目录中扫描。因此,~/components/islands/MyIsland.vue 组件可以使用 <NuxtIsland name="MyIsland" /> 进行渲染。

插槽

如果已声明,槽可以传递给 Island 组件。

每个槽都是交互式的,因为父组件提供了它。

一些槽保留给 NuxtIsland 用于特殊情况。

  • #fallback: 指定在 Island 加载之前(如果组件是延迟加载的)或 NuxtIsland 未能获取组件时要渲染的内容。

Ref

  • refresh()
    • 类型: () => Promise<void>
    • 描述: 通过重新获取服务器组件来强制重新获取它。

事件

  • error
    • 参数:
      • error:
        • 类型: unknown
    • 描述: 当 NuxtIsland 未能获取新 Island 时发出。