react에서는 이벤트 버블링을 root에서 관리해서 결국 root로 모든 버블링이 전달되는 것으로 알고있다.

이것의 장점은 이벤트를 한곳에서만 관리하기 때문에 유지보수등이 용이하다

즉 이벤트 버블링 최적화가 이미 구현되어있다.

글의 내용은 이벤트 버블링의 원리나 작동원리는 아니고 간단한 활용 방식에 관해서이다.

Untitled

인프런에서 강의를 보는데

div > button 으로 아래 많은 버튼을 관리하는 상위 div에서 이벤트 버블링을 활용해

효과적으로 관리하는 방식을 제시했다.

div 에 onClickEvent를 부착해서 버튼의 content 내용을 props로 전달받은

onClick 함수에 전달하는 방식

const onClick = (e) => {
  const eventTarget = e.target as HTMLButtonElement;  // 이벤트가 발생한 요소를 HTMLButtonElement로 타입 캐스팅
  const tag = eventTarget.textContent;               // 이벤트가 발생한 요소의 텍스트 내용을 가져옴
  onTagClick(tag);                                   // 텍스트 내용을 인자로 하여 onTagClick 함수 호출
}
<div onClick={onClick}>
  <button>Tag 1</button>
  <button>Tag 2</button>
  <button>Tag 3</button>
</div>
function onTagClick(tag) {
  console.log(`Clicked on tag: ${tag}`);
}