Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- tanstackquery
- springboot
- Spring
- designpatterns
- hook
- JPA
- 티스토리챌린지
- React
- frontend
- Redux
- JavaSpring
- javascript
- test
- 웹애플리케이션서버
- RTK
- java
- backend
- ReactHooks
- 오블완
- go
- satisfiles
- Gin
- Chakra
- react-hook-form
- typescript
- css
- storybook
- golang
- component
Archives
- Today
- Total
bkdragon's log
React 이벤트 위임 본문
이벤트 위임은 자식 요소가 여러 개 일 때 부모 요소에만 이벤트를 적용하면 버블링에 의해 이벤트가 실행되는 것을 이용하는 기법이다. 핸들러를 여러개 사용하지 않아도 되어 메모리를 절약하거나 요소가 추가되거나 제거되었을 때 별로도 이벤트를 추가하거나 제거해야하는 필요성이 없는 장점을 지닌다.
근데 React에서는 이벤트를 빌드 단계에서 Root Element로 위임시킨다고 한다. 즉 개발자가 이벤트 위임 패턴을 사용해서 코드를 작성해도 성능적인 이점을 가져갈 수 없는 것이다. Root Element로 모든 이벤트가 위임된다는 것은 React에서는 이벤트 발생 단계 중 캡쳐링 단계가 없다는 것이다. 버블링은 어떨까?
<footer
onClick={() => alert('footer')}
style={{ width: '100%', border: '1px solid black' }}
>
<div
onClick={() => alert('footer 안에 div')}
style={{ width: '100px', border: '1px solid black' }}
>
footer안에 div
</div>
</footer>
이렇게 코드를 작성하고 div를 클릭하면 footer의 이벤트도 발생한다. 즉 버블링 과정은 정상적으로 일어난다. 이벤트 위임이 일어나면서 이벤트 간의 관계를 알고 있다고 추측할 수 있다.
'React' 카테고리의 다른 글
useEffect 친해지기 1 (0) | 2023.08.09 |
---|---|
반복되는 요소 렌더링 최적화 하기 (0) | 2023.08.05 |
클로저와 useState (0) | 2023.07.10 |
[React] 성능 최적화 (0) | 2023.06.29 |
[React] Virtual DOM (0) | 2023.06.25 |