반응형
🌈 커스텀 이벤트 추가 및 이벤트 데이터 추출하기
Svelte.js - 완벽 가이드의 [섹션 6:: 컴포넌트에 대해 자세히 알아보기] 를 수강한 후에 정리한 내용이다.
👨💻 커스텀 이벤트와 데이터 추출
커스텀 이벤트에 있어 중요한 키워드는 dispatch이다.
하위 컴포넌트의 스크립트에서 createEventDispatcher를 통해
커스텀 이벤트의 이름과 전달할 데이터를 바인딩 한 메서드에 dispatch한다.
<!-- Product.svelte -->
<script>
import { createEventDispatcher } from 'svelte';
const dispatch = createEventDispatcher();
function addToCart(){
dispatch('add-to-cart', {id: 'p1'}); //첫번째인수는 이벤트 이름, 두번쨰는 전달할 데이터
}
</script>
<button on:click="{addToCart}">Add to Cart</button>
하위 컴포넌트에서 dispatch한 커스텀 이벤트와 데이터를 상위 컴포넌트에서 사용할 수 있게 되었다.
<!-- App.svelte -->
<Product on:add-to-cart={() => alert(''Add to cart!)} />
또한 하위 컴포넌트에서 전달한 이벤트의 데이터를 추출하기 위해서는 아래와 같이 하위 컴포넌트의 프로퍼티에
메서드를 바인딩한 후 인자값을 받아와 사용할 수 있다.
<!-- App.svelte -->
<script>
function addToCart(event) {
console.log(event.detail) // p1
}
</script>
<Product on:add-to-cart={addToCart} />
반응형
'Frontend > Svelte' 카테고리의 다른 글
[Svelte] 스벨트 컴포넌트 생명주기(Lifecycle) 정리 (0) | 2023.01.13 |
---|---|
[Svelte] 스벨트 전개(Spread) 프로퍼티와 슬롯(Slot) 사용하기 (0) | 2023.01.12 |
[Svelte] 두 가지 종류의 컴포넌트 (Container VS Presentational component) (0) | 2023.01.08 |
[Svelte] HTML에서의 조건문과 루프 방법 정리 (1) | 2022.12.20 |
[Svelte] 기본 구문 및 핵심 기능 정리 (0) | 2022.12.19 |
최근댓글