반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- import.meta.env
- api test
- ts error
- csr
- typeScript
- ViTE
- vue3
- http3
- CloudFlare
- svelte
- aws
- e2e
- custom command
- devtools
- JavaScript
- 선택자
- vue
- TLS
- web vital
- CSS
- caching
- Cypress
- https
- QUIC
- vue-cli
- Testing
- 비동기
- SSR
- msw
- rendering
Archives
- Today
- Total
Develop Note by J.S.
[Svelte] Svelte 기본문법 #3 (Slot) 본문
반응형
Slot이란?
- 공통 레이아웃을 가진 Component에 props 데이터 이외에 마크업을 전달해서 렌더링 시켜야할 때 Slot을 사용할 수 있다.
- 형태 : <slot></slot>
1) 사용법
// Card.svelte
<div class="card">
<slot></slot>
</div>
// main.svelte
import Card from './Card.svelte';
...
<Card> // Card 컴포넌트 내부 Slot에 매핑될 Html 형태의 내용을 입력한다.
<h2> 안녕하세요. </h2>
<p> 반갑습니다.</p>
</Card>
2) 이름이 있는 Slot
// Card.svelte
<div class="card"> //name 속성으로 slot에 이름을 지정
<slot name="introduce"></slot>
<slot name="card_name"></slot>
</div>
// main.svelte
import Card from './Card.svelte';
...
<Card>
<div slot="introduce"> // slot 속성으로 매핑할 slot name을 입력
<h2> 안녕하세요. </h2>
<p> 반갑습니다.</p>
</div>
<div slot="card_name">
<p> 청첩장 </p>
</div>
</Card>
3) $$slots - 슬롯 사용여부
// Card.svelte
<div class="card">
{#if $$slots.email} // email 이름의 슬롯 사용여부 체크
<slot name="email"></slot>
{/if}
</div>
// main.svelte
import Card from './Card.svelte';
...
<Card>
...
<div slot="email">
<p> email@email.com </p>
</div>
</Card>
4) Flagment
- 의미없는 div 태그 사용으로 css의 오동작 이슈가 생길 경우 flagment 태그 활용
<svelte:fragment slot="footer">
<p> test </p>
</svelte:fragment>
반응형
'FrontEnd > Svelte' 카테고리의 다른 글
[Svelte] 프로젝트 시작하기 (0) | 2024.01.18 |
---|---|
[Svelte] Svelte 기본문법 #5 (Lifecycle) (0) | 2024.01.17 |
[Svelte] Svelte 기본문법 #4 (Transition) (0) | 2024.01.17 |
[Svelte] Svelte 기본문법 #2 (Store) (0) | 2024.01.17 |
[Svelte] Svelte 기본문법 #1 (0) | 2024.01.17 |