🍞 Front-End/React

[React] 합성 이벤트(SyntheticEvent)

박빵이 2022. 10. 22. 20:07

👇 일단 이벤트 버블링과 이벤트 캡처링에 대해서 미리 알아야한다!

간단히 정리하자면, 이벤트 버블링이라는 것은 자식에서 부모 요소로 이벤트가 전파되는 방식을 말하고

이벤트 캡처링이라는 것은 부모에서 자식 요소로 이벤트가 전파되는 방식을 말한다.

 

[JavaScript] 이벤트 버블링, 이벤트 캡쳐

📌 이벤트 버블링 - Event Bubbling 이벤트 버블링은 특정 화면 요소에서 이벤트가 발생했을 때 해당 이벤트가 더 상위의 화면 요소들로 전달되어 가는 특성을 의미한다. 아래 콘솔 창은 three className

uiop5809.tistory.com

 

📌 합성 이벤트(SyntheticEvent)

JS에서 이벤트 버블링과 캡처링에 대해서 이해가 끝났다면, 이제 리액트의 합성 이벤트에 대해서 알아보겠다!

원래 기본 이벤트 핸들러들은 이벤트 버블링 단계에서 호출된다. 그러나, 이벤트 이름에 Capture를 덧붙이면 이벤트 캡처링을 할 수 있으며 버블링 단계 이전에 호출된다. 예를 들어 onClick 대신 onClickCapture를 사용해서 캡처 단계에서 클릭 이벤트 핸들러를 사용할 수 있다.

 

❓이걸 언제 쓰는지

자식보다 부모가 먼저 클릭을 인지하도록 만들고 싶을 때 쓴다!

 

합성 이벤트(SyntheticEvent) – React

A JavaScript library for building user interfaces

ko.reactjs.org

 

예상했던대로, 이벤트 이름에 Cpature를 붙여준 이벤트가 먼저 호출되고 다음으로 버블링이 일어나는 것을 볼 수 있다.

Capture > target(이벤트가 일어난 가장 안 쪽) > Bubble