반응형
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 |
Tags
- rendering
- vue
- 비동기
- aws
- vue-cli
- ViTE
- https
- msw
- Testing
- Cypress
- CloudFlare
- custom command
- api test
- ts error
- vue3
- svelte
- devtools
- typeScript
- JavaScript
- web vital
- http3
- caching
- TLS
- csr
- 선택자
- e2e
- SSR
- QUIC
- CSS
- import.meta.env
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 |