<NuxtIsland>
Nuxt 提供了 <NuxtIsland> 组件,用于以非交互方式渲染没有客户端 JS 的组件。
当渲染一个岛屿组件时,岛屿组件的内容是静态的,因此客户端不会下载任何 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'
。
强烈不建议启用 dangerouslyLoadClientComponents
,因为你不能信任远程服务器的 javascript。默认情况下,组件岛屿从
~/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: