- 버튼 클릭 → Document의 ‘root’에 이벤트 객체 생성 (누른 버튼에 생성이 아닌 최상단에 생성)
- document root에서 실제 이벤트 벌어진 곳까지 이동(캡쳐링)
- 실제 이벤트 발생 → document root까지 이동 (버블링)
onClick A안에 onClick B이 있는 경우, B호출 후 A호출한다.
이를 막기 위해서 A 호출 시점에 e.stopPropagation();를 사용 → 버블링 중단.
document.addEventListener("click", handleClick, listenCapturing);
3번째를 명시하지 않으면 기본적으로 버블링으로 유지한다.
각 태그마다 div.addEventListener 처럼 가능하다.
기본적으로 버블링이고, 캡쳐링은 잘 안쓴다.
[버블링의 경우]
div.addEventListener 호출3
div.addEventListener 호출2
div.addEventListener 호출1
인 경우 맨 아래까지 우선 도달 후 위로 올라가면서 호출한다.
호출 1 -> 호출 2 -> 호출 3
[캡쳐링의 경우]
div.addEventListener 호출1
div.addEventListener 호출2
div.addEventListener 호출3
바깥에 있는것부터 그냥 호출한다.
'React > know' 카테고리의 다른 글
onClick을 사용하는 3가지 방법 (0) | 2024.11.26 |
---|---|
조건부 랜더링 시 Hook 사용 조심하기 (1) | 2024.11.22 |
비구조할당으로 argument 처리하기 (0) | 2024.11.21 |
Render Props 패턴 (0) | 2024.11.20 |
성능 최적화 : React Dev Tool, React.lazy (2) | 2024.11.19 |