λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ“š/γ„΄ JavaScript

[JavaScript] 이벀트 버블링, 캑처링, μœ„μž„μ΄λž€?

πŸ”— 이벀트 버블링(Event Bubbling)μ΄λž€?

 

 

 

 νŠΉμ • ν™”λ©΄ μš”μ†Œμ—μ„œ μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ ν•΄λ‹Ή μ΄λ²€νŠΈκ°€ 더 μƒμœ„μ˜ ν™”λ©΄ μš”μ†Œλ“€λ‘œ μ „λ‹¬λ˜μ–΄ κ°€λŠ” νŠΉμ„±μ΄λ‹€.

 

 

πŸ”— 이벀트 캑처링(Event Capturing)μ΄λž€?

 

 

 μ΄λ²€νŠΈ 버블링과 λ°˜λŒ€ λ°©ν–₯으둜 μ§„ν–‰λ˜λŠ” 이벀트 μ „νŒŒ 방식이닀.

 

 

πŸ”— 이벀트 μœ„μž„(Event Delegation)μ΄λž€?

 

 ν•˜μœ„ μš”μ†Œμ— 각각 이벀트λ₯Ό 뢙이지 μ•Šκ³  μƒμœ„ μš”μ†Œμ—μ„œ ν•˜μœ„ μš”μ†Œμ˜ 이벀트λ₯Ό μ œμ–΄ν•˜λŠ” 방식이닀. (μ•žμ—μ„œ μ‚΄νŽ΄λ³Έ 이벀트 버블링과 μΊ‘μ²˜λ§μ€ 이벀트 μœ„μž„μ„ μœ„ν•œ μ„ μˆ˜ 지식이라고 해도 과언이 μ•„λ‹ˆλ‹€. 이벀트 μœ„μž„μ€ μ‹€μ œ 바닐라 μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ μ›Ήκ³Ό 앱을 κ΅¬ν˜„ν•  λ•Œ 자주 μ‚¬μš©ν•˜λŠ” μ½”λ”© νŒ¨ν„΄μ΄λ‹€.)

 

μž₯점

  • μ½”λ“œκ°€ 짧아지고 λ©”λͺ¨λ¦¬κ°€ μ ˆμ•½λœλ‹€.
  • λ¬΄λΆ„λ³„ν•œ 이벀트 λ“±λ‘μœΌλ‘œ μΈν•œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό 방지할 수 μžˆλ‹€.
  • 자유둭게 ν•˜μœ„μš”μ†Œλ₯Ό μΆ”κ°€, μ‚­μ œν•  수 μžˆλ‹€.

단점

  • 이벀트 μœ„μž„μ„ μ‚¬μš©ν•˜λ €λ©΄ μ΄λ²€νŠΈκ°€ λ°˜λ“œμ‹œ 버블링 λ˜μ–΄μ•Ό ν•œλ‹€.
  • λͺ¨λ“  ν•˜μœ„ μš”μ†Œμ—μ„œ λ°œμƒν•˜λŠ” μ΄λ²€νŠΈμ— 응닡해야 ν•˜λ―€λ‘œ CPU μž‘μ—… λΆ€ν•˜κ°€ λŠ˜μ–΄λ‚  수 μžˆλ‹€.

 


πŸ”Ž μ°Έκ³  자료

πŸ’‘ 같이 λ³΄λ©΄ 쒋을 Post

 

[JavaScript] μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” '이벀트 기반', 'λ…ΌλΈ”λ‘œν‚Ή' 방식을 μ‚¬μš©ν•˜κ³  'μ‹±κΈ€ μŠ€λ ˆλ“œ' 언어이닀.

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œ μ–Έμ–΄μ΄λ‹€. ν•˜μ§€λ§Œ μ‹€μ œ μ‚¬μš©μ‹œμ—λŠ” λ§Žμ€ μž‘μ—…μ΄ λ™μ‹œμ— μ²˜λ¦¬λ˜λŠ” λ©€ν‹° μŠ€λ ˆλ“œμ²˜λŸΌ λ³΄μ΄λŠ”λ° μ™œ 그런 κ²ƒμΌκΉŒ? μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ–΄λ–»κ²Œ 'λ™μ‹œμ„±(Concurrency)'을 μ§€μ›ν•˜

devjindev.tistory.com