[javascript] Svelte에서 이벤트 버블링을 어떻게 처리할 수 있나요?

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 공식 문서를 참조하세요.