일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 이종호
- 리액트 예제
- javascript
- IOS
- 스벨트
- 비동기
- hokeys
- 힛잇
- 호키스
- SWIFT
- 개발자
- Svelte
- 호키도키
- 자바스크립트 자료구조
- 자바스크립트
- HTML
- 스위프트
- 계명대 이종호
- 자료구조
- Hitit
- react
- 자스민
- 개발
- jest
- 리액트
- hokidoki
- data structure
- TDD
- queue
- 계명대
Archives
- Today
- Total
Dog foot print
[SVELTE] #each 본문
{#each…}
스벨트는 반복 가능한 데이터 구조에 한하여, 컴포넌트에 데이터를 전달하여 렌더 할 수 있습니다.
{#each expression as name}...{/each}
{#each expression as name, index}...{/each}
{#each expression as name (key)}...{/each}
{#each expression as name, index (key)}...{/each}
{#each expression as name}...{:else}...{/each}
<h1>Shopping list</h1>
<ul>
{#each items as item}
<li>{item.name} x {item.qty}</li>
{/each}
</ul>
반복 가능한 배열은 각 블럭마다 반복 횟수에 맞는 index
를 가진 값을 사용 할 수 있습니다.
each
블럭은 length 프로퍼티를 가진 배열과 유사한 데이터 구조라면 사용 가능합니다.
{#each items as item, i}
<li>{i + 1}: {item.name} x {item.qty}</li>
{/each}
each
블럭은 index를 함께 사용 할 수 있습니다. 이 구조는 Array.map
의 콜백 함수 전달인자와 동일합니다.
{#each items as item (item.id)}
<li>{item.name} x {item.qty}</li>
{/each}
<!-- or with additional index value -->
{#each items as item, i (item.id)}
<li>{i + 1}: {item.name} x {item.qty}</li>
{/each}
만약 each
블럭에 각 아이템에 맞는 유니크한 key
를 제공한다면, 스벨트는 이것을 사용하여, 데이터가 변경 될때만 새롭게 렌더링 합니다. (Key 를 명시 하지 않는 경우, 배열의 값이 추가되거나 삭제되면 새롭게 렌더링 됩니다. ) key는 객체형태도 사용 가능하지만, 문자열 혹은 숫자 타입이 추천됩니다.
{#each items as { id, name, qty }, i (id)}
<li>{i + 1}: {name} x {qty}</li>
{/each}
{#each objects as { id, ...rest }}
<li><span>{id}</span><MyComponent {...rest}/></li>
{/each}
{#each items as [id, ...rest]}
<li><span>{id}</span><MyComponent values={rest}/></li>
{/each}
each
블럭에서는 구조 분해(destructuring
)를 사용하거나,
나머지 패턴(...rest
)을 사용 할 수 있습니다.
{#each todos as todo}
<p>{todo.text}</p>
{:else}
<p>No tasks today!</p>
{/each}
만약 순회가능한 자료구조에 데이터가 존재하지 않는 경우를 대비하여, 다른 것을 렌더링 할 수 있습니다.
#svelte
반응형
'SVELTE > API DOCS' 카테고리의 다른 글
[SVELTE] @HTML (0) | 2021.05.21 |
---|---|
[SVELTE] #key (0) | 2021.05.21 |
[SVELTE] #if (0) | 2021.05.21 |
[SVELTE] Comment (0) | 2021.05.21 |
[SVELTE] Attributes and props (0) | 2021.05.21 |
Comments