이벤트 위임과 캡쳐링

Maria Kim·2022년 4월 6일
0

캡쳐링이 존재하는 이유

사실 캠쳐링을 쓴 코드는 찾아보기 힘들다 하지만 켭쳐링이 존재하는 이유는 뭘까?

[stack overflow] Real world example where event capturing is necessary / preferred?

  1. 예전에는 이벤트 캠쳐링만이 익스프롤러 브라우저 이외의 브라우저에서는 존재했다
  • 그래서 문제가 많아 W3C에서는 두 개다 표준으로 정했다.
  1. 버블링이 없는 이벤트에서 이벤트 위임을 하는데 좋다.

이벤트 위임

장점

  1. 초기화가 단순해지고 메모리가 절약
  • 많은 핸들러를 할당하지 않아도 되기 때문
  1. 요소에 할당된 핸들러를 추가하거나 제거하는 일이 적어짐 + 코드 짧아짐
  • 요소를 추가하거나 제거할 때 해당 요소에 대한 이벤트를 추가하거나 삭제해야 하기 때문
  1. DOM 수정이 쉬워짐
  • innerHTML이나 유사한 기능을 하는 스크립트로 요소 덩어리를 더하거나 뺄 수 있기 때문

단점

  1. 이벤트 위임을 사용하려면 이벤트가 반드시 버블링 됨
  • 하지만 몇몇 이벤트는 버블링 되지 않음
  1. 낮은 레벨에 할당한 핸들러엔 event.stopPropagation()를 쓸 수 없음
  2. CPU 작업 부하가 늘어날 수 있음(하지만 무시할 만한 수준)
  • 컨테이너 수준에 할당된 핸들러가 응답할 필요가 있는 이벤트이든 아니든 상관없이 모든 하위 컨테이너에서 발생하는 이벤트에 응답해야 하므로

[Javascript Info]이벤트 위임

profile
Frontend Developer, who has business in mind.

0개의 댓글