<NuxtIsland>

Nuxt 提供了 <NuxtIsland> 组件,用于以非交互方式渲染没有客户端 JS 的组件。

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

更改岛屿组件的属性会触发岛屿组件的重新获取,以便再次重新渲染。

你的应用的全球样式会被响应发送。
服务器专有组件在幕后使用 <NuxtIsland>

Props

  • name:要渲染的组件的名称。
    • type: string
    • required
  • lazy: 使组件非阻塞。
    • type: boolean
    • default: false
  • props: 发送给要渲染的组件的属性。
    • type: Record<string, any>
  • source: 调用渲染岛屿的远程源。
    • type: string
  • dangerouslyLoadClientComponents: 需要从远程源加载组件。
    • type: boolean
    • default: false
远程岛屿需要 nuxt.config 中的 experimental.componentIslands 设置为 'local+remote'。 强烈不建议启用 dangerouslyLoadClientComponents,因为你不能信任远程服务器的 javascript。
默认情况下,组件岛屿从 ~/components/islands/ 目录中扫描。因此,~/components/islands/MyIsland.vue 组件可以通过 <NuxtIsland name="MyIsland" /> 渲染。

Slots

如果声明了,可以将插槽传递给岛屿组件。

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

一些插槽是为 NuxtIsland 的特殊情况保留的。

  • #fallback: 指定岛屿加载前(如果组件是懒惰的)或 NuxtIsland 失败时要渲染的内容。

Ref

  • refresh()
    • type: () => Promise<void>
    • description: 强制重新获取服务器组件,通过重新获取它。

Events

  • error
    • parameters:
      • error:
        • type: unknown
    • description: 当 NuxtIsland 失败时发出,去获取新的岛屿。