nuxt logo

문서 번역(비공식)

<NuxtIsland>

Nuxt는 클라이언트 JS 없이 비상호작용 컴포넌트를 렌더링하기 위해 <NuxtIsland> 컴포넌트를 제공합니다.

아일랜드 컴포넌트를 렌더링할 때, 아일랜드 컴포넌트의 내용은 정적이므로 클라이언트 측에 JS가 다운로드되지 않습니다.

아일랜드 컴포넌트의 props를 변경하면 아일랜드 컴포넌트를 다시 렌더링하기 위해 다시 가져옵니다.

애플리케이션의 글로벌 스타일은 응답과 함께 전송됩니다.

서버 전용 컴포넌트는 내부적으로 <NuxtIsland>를 사용합니다.

Props

  • name : 렌더링할 컴포넌트의 이름.
    • type: string
    • required
  • lazy: 컴포넌트를 비차단으로 만듭니다.
    • type: boolean
    • default: false
  • props: 렌더링할 컴포넌트에 보낼 props.
    • type: Record<string, any>
  • source: 렌더링할 아일랜드를 호출할 원격 소스.
    • type: string
  • dangerouslyLoadClientComponents: 원격 소스에서 컴포넌트를 로드하는 데 필요합니다.
    • type: boolean
    • default: false

원격 아일랜드는 nuxt.config에서 experimental.componentIslands'local+remote'로 설정되어야 합니다. 원격 서버의 자바스크립트를 신뢰할 수 없으므로 dangerouslyLoadClientComponents를 활성화하는 것은 강력히 권장되지 않습니다.

기본적으로, 컴포넌트 아일랜드는 ~/components/islands/ 디렉토리에서 스캔됩니다. 따라서 ~/components/islands/MyIsland.vue 컴포넌트는 <NuxtIsland name="MyIsland" />로 렌더링될 수 있습니다.

Slots

슬롯은 선언된 경우 아일랜드 컴포넌트에 전달될 수 있습니다.

모든 슬롯은 부모 컴포넌트가 제공하기 때문에 상호작용이 가능합니다.

일부 슬롯은 특별한 경우를 위해 NuxtIsland에 예약되어 있습니다.

  • #fallback: 아일랜드가 로드되기 전에 렌더링할 콘텐츠를 지정하거나 (컴포넌트가 lazy인 경우) NuxtIsland가 컴포넌트를 가져오는 데 실패한 경우.

Ref

  • refresh()
    • type: () => Promise<void>
    • description: 서버 컴포넌트를 다시 가져와 강제로 다시 가져옵니다.

Events

  • error
    • parameters:
      • error:
        • type: unknown
    • description: NuxtIsland가 새로운 아일랜드를 가져오는 데 실패했을 때 발생합니다.