Svelte는 이벤트 버블링을 처리하기 위해 표준 DOM 이벤트 모델을 따릅니다. 이벤트는 하위 컴포넌트에서 상위 컴포넌트로 버블링될 수 있습니다. 따라서 이벤트를 처리하는 방법은 상위 컴포넌트에서 이벤트를 캡처하거나 하위 컴포넌트로 전달하는 것입니다.
가장 간단한 방법은 Svelte에서 제공하는 on:event
디렉티브를 사용하는 것입니다. 이 디렉티브를 사용하여 상위 컴포넌트에서 이벤트를 처리할 수 있습니다. 예를 들어, 하위 컴포넌트에서 click
이벤트가 발생했을 때 상위 컴포넌트에서 이를 처리하려면 다음과 같이 작성할 수 있습니다:
<!-- 하위 컴포넌트 -->
<button on:click={handleClick}>Click Me</button>
<script>
function handleClick() {
// 이벤트 처리 로직 작성
}
</script>
<!-- 상위 컴포넌트 -->
<SubComponent on:click={handleClick}></SubComponent>
<script>
function handleClick() {
// 이벤트 처리 로직 작성
}
</script>
이렇게 하면 하위 컴포넌트에서 click
이벤트가 발생하면 해당 이벤트는 상위 컴포넌트로 버블링되며, 상위 컴포넌트의 handleClick
함수가 호출됩니다. 상위 컴포넌트에서는 필요에 따라 이벤트를 처리하거나 다른 하위 컴포넌트로 전달할 수 있습니다.
Svelte에서는 또한 dispatch
함수를 사용하여 하위 컴포넌트로 이벤트를 전달할 수도 있습니다. 이 방법은 상위 컴포넌트에서 dispatch
함수를 호출하여 커스텀 이벤트 객체를 만들고 이를 하위 컴포넌트로 전달하는 것입니다. 하위 컴포넌트에서는 해당 이벤트를 on:event
디렉티브로 캡처하여 처리할 수 있습니다.
이벤트 버블링을 사용하여 Svelte 애플리케이션 내에서 컴포넌트 간의 상호 작용을 구현할 수 있습니다. 이를 통해 코드의 재사용성과 유지 보수성을 향상시킬 수 있습니다.
더 자세한 내용은 Svelte 공식 문서를 참조하세요.