Svelte는 소품, 슬롯 등 컴포넌트가 서로 통신할 수 있는 다양한 방법을 제공합니다. Svelte 애플리케이션에서 유연하고 재사용 가능한 컴포넌트를 만들려면 슬롯을 통합해야 합니다.

Svelte의 슬롯 이해

Svelte는 Vue에서 실행되는 방식과 마찬가지로 상위 요소에서 하위 구성 요소로 데이터를 전달하는 접근 방식으로 슬롯을 활용합니다. 이 기술을 사용하면 컴포넌트의 레이아웃 내에서 특정 위치 또는 “슬롯”을 지정하여 포함 컴포넌트에서 외부 정보를 가져올 수 있습니다.

슬롯을 활용하면 다양한 시나리오에 대응하여 높은 수준의 개인화 및 역동성을 보여주는 다용도 및 적응형 컴포넌트를 제작할 수 있습니다.

기본 슬롯 만들기

Svelte 애플리케이션 내에 “슬롯” 기능을 통합하려면 특정 컴포넌트의 템플릿 내에 있는 지정된 “슬롯” 요소를 활용해야 합니다. 이 특정 요소는 부모 컴포넌트가 하위 컴포넌트에 표시할 콘텐츠나 데이터를 제공할 수 있는 영역으로 기능합니다. 기본적으로 이 프로세스에는 명시적인 지시 없이도 상위 컴포넌트가 제공한 정보를 렌더링하는 작업이 포함됩니다.

기본 슬롯을 설정하려면 다음 단계를 따르세요:

 <main>
  This is the child component
  <slot></slot>
</main>

제공된 코드 블록은 “슬롯” 속성을 활용하여 부모 컴포넌트에서 데이터를 가져오는 자식 컴포넌트의 인스턴스를 보여줍니다(일반적으로 두 컴포넌트 간의 통신 형태를 통해). 이러한 관계는 정보 공유를 허용하고 사용자 인터페이스에서 동적 동작을 가능하게 합니다.

HTML에서 부모 요소에서 자식 요소로 데이터를 전송하려면 먼저 임포트를 통해 자식 요소를 부모 요소에 통합해야 합니다. 자식 요소를 표시하기 위해 독립된 태그를 사용하는 대신 열기 태그와 닫기 태그를 모두 사용합니다. 궁극적으로 이러한 태그 안에 부모 요소와 자식 요소 간에 전송할 정보를 지정합니다.

감성 지능의 개념은 자신의 감정을 인식, 이해, 관리하고 다른 사람의 감정을 공감할 수 있는 개인의 능력을 말합니다. 여기에는 자신과 타인의 감정 상태를 더 잘 이해하기 위해 표정이나 몸짓과 같은 비언어적 단서를 식별하고 해석할 수 있는 능력이 포함됩니다. 감성 지능은 효과적인 의사소통의 중요한 요소이며 개인적으로나 직업적으로 강력한 관계를 구축하는 데 중요한 역할을 합니다.

 <script>
import Component from "./Component.svelte";
</script>

<main>
This is the parent component
<Component>
<span>This is a message from the parent component</span>
</Component>
</main>

또한 부모와 자식 간 구성 요소가 정보를 전달하지 못하는 경우 슬롯 내에서 보충 또는 기본 자료를 제공할 수 있습니다.이러한 슬롯에 제공되는 콘텐츠는 상위 요소에 의해 데이터가 전달되지 않았을 때 표시되어야 하는 자료를 구성합니다.

이 글도 확인해 보세요:  React Native에서 Flexbox를 사용하는 방법

오류가 발생하거나 기본 콘텐츠를 렌더링할 수 없는 경우 대체 콘텐츠를 제공하는 한 가지 방법을 “폴백 콘텐츠”라고 합니다. 이를 구현하려면 다음 단계를 따르세요:

 <main>
  This is the child component
  <slot>Fallback Content</slot>
</main>

본 코드 세그먼트는 조상 법인이 실질적인 데이터를 제공하지 못할 경우 표시할 보조 자료로 “대체 콘텐츠”라는 표현을 제공합니다.

슬롯 프로퍼티로 슬롯 간 데이터 전달

스벨트를 활용하면 슬롯 프로퍼티를 통해 슬롯에 정보를 전달할 수 있습니다. 이러한 슬롯 속성은 하위 컴포넌트에서 다른 요소에 삽입되는 콘텐츠로 특정 데이터를 전송할 필요가 있을 때 사용할 수 있습니다.

이 구절에서는 젊은이들의 불안과 우울증 증가 등 소셜 미디어가 정신 건강에 미치는 부정적인 영향에 대해 설명합니다. 저자는 이러한 플랫폼을 과도하게 사용하면 중독과 같은 행동으로 이어질 수 있으며 대면 커뮤니케이션 기술을 방해할 수 있다고 주장합니다. 또한, 선별된 이미지와 타인의 삶에 지속적으로 노출되면 부적절함과 낮은 자존감을 유발할 수 있습니다. 따라서 개인은 이러한 플랫폼에서 보내는 시간을 제한하고 대신 주변 사람들과 의미 있는 관계를 구축하는 데 우선순위를 두는 것이 좋습니다.

 <script>
  let message = 'Hello Parent Component!'
</script>

<main>
  This is the child component
  <slot message={message}></slot>
</main>

제공된 코드 스니펫 내에서 Svelte 구성 요소의 구현을 관찰합니다. 프로세스는 ‘message’라는 변수를 생성하는 것으로 시작되며, 이 변수에는 “Hello Parent Component!”라는 값이 할당됩니다. 그 후, 해당 변수는