Home ๐Ÿ“ธ 2023-01-08
Post
Cancel

๐Ÿ“ธ 2023-01-08

๐Ÿ”ฅ ์˜ค๋Š˜ ์–ด๋””์— ๋„์ „ํ•ด๋ณด์…จ๊ณ , ๋ฌด์—‡์„ ๋ฐฐ์šฐ์…จ๋‚˜์š”?

๐ŸŒŠ ํ•™์Šตํ•˜์‹œ๋ฉด์„œ ๊ถ๊ธˆํ•˜์‹  ๋ถ€๋ถ„์ด๋‚˜, ์–ด๋ ค์› ๋˜ ์ ์€ ๋ญ˜๊นŒ์š”?

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ด๋ชจํ‹ฐ์ฝ˜ ํ• ์ธํ–‰์‚ฌ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ‘ธ๋Š”๋ฐ ๊ฑฐ์˜ ์ดํ‹€ ๊ฑธ๋ ธ๋‹ค. ์™„์ „ํƒ์ƒ‰์œผ๋กœ ํ’€์–ด์•ผ ํ•œ๋‹ค๋Š” ํžŒํŠธ๋ฅผ ์–ป๊ณ ๋„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ• ์ง€ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์— ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ์š”ํ–ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์˜ ๋‹ต์•ˆ์„ ๋ดค๋Š”๋ฐ ๋” ๊ฐ„๋‹จํ•œ๋ฐ ๊ทธ๊ฑธ ์™„์ „ํžˆ ์ดํ•ดํ•˜๋Š”๋ฐ๋„ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค. ๋‚จ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ์–ธ์ œ ๋ด๋„ ์–ด๋ ต๋‹คโ€ฆ

๐ŸŒŸ ๋‚ด์ผ์€ ์–ด๋–ป๊ฒŒ ํ•ด๋ณด๊ณ  ์‹ถ์œผ์„ธ์š”?

  • ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์›น ๊ฐœ๋ฐœ ์ œ๋Œ€๋กœ ์‹œ์ž‘ํ•˜๊ธฐ ๊ฐ•์˜๋ฅผ ๋” ๋“ค์œผ๋ฉด์„œ CSS๋ž‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ณต๋ถ€ํ•ด์•ผ์ง€

๋ฆฌ์•กํŠธ ์ด๋ฒคํŠธ ๋™์ž‘ ์›๋ฆฌ์— ๊ด€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ •๋ณด - SyntheticEvent

์—ฐ์ •์ด๊ฐ€ ๋ฆฌ์•กํŠธ์˜ ์ด๋ฒคํŠธ ์ž‘๋™ ์›๋ฆฌ์— ๊ด€ํ•œ ๊ธ€์„ ํ•˜๋‚˜ ๋ณด๋‚ด์คฌ๋‹ค. ๋‹ค ์ดํ•ดํ•˜์ง€๋Š” ๋ชปํ–ˆ์ง€๋งŒ ์ด์ œ๊นŒ์ง„ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋ถ™์ธ ์š”์†Œ์— ๊ทธ๋Œ€๋กœ ๋ถ™์„์ค„ ์•Œ์•˜๋Š”๋ฐ ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ๋Š”๊ฑธ ์ฒ˜์Œ ์•Œ์•˜๋‹ค. ๋‹ค์Œ์— ๋” ๊นŠ๊ฒŒ ์•Œ๊ฒŒ ๋˜๋ฉด ๋„์›€์ด ๋ ๊นŒํ•˜์—ฌ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋‘”๋‹ค.

  • โœ… ๋ฆฌ์•กํŠธ 17๋ฒ„์ „๋ถ€ํ„ฐ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ Document ๋ ˆ๋ฒจ์ด ์•„๋‹Œ ๋ฆฌ์•กํŠธ ํŠธ๋ฆฌ๊ฐ€ ๋ Œ๋”๋˜๋Š” root DOM container์— ๋ถ™์ธ๋‹ค.
  • โœ… NativeEvent๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ SyntheticEvent ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด์„œ NativeEvent๋ฅผ ๊ฐ์‹ธ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • โœ… NativeEvent ์ด๋ฆ„๊ณผ ๋ฆฌ์•กํŠธ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์˜ Property๋ฅผ ๋งคํ•‘ํ•ด์ฃผ๊ณ  ์ „์ฒด NativeEvent๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ ์ด๋ฒคํŠธ์— ๋ฆฌ์•กํŠธ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•œ๋‹ค. => ์ด ๋‹จ๊ณ„๋Š” ์ตœ์ดˆ ๋ Œ๋”๋ง์ด ๋˜๊ธฐ ์ „์— ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ root DOM Node์— ๋ชจ๋“  ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค.
  • โœ… ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด๋ฒคํŠธ ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ node๋ฅผ ์ฐพ๊ณ , ํ•ด๋‹น node๋ถ€ํ„ฐ root node๊นŒ์ง€ ํŠธ๋ฆฌ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๋งค์นญ๋˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ๊ฒฌํ•  ๋•Œ๋งˆ๋‹ค ํŠน์ • ํ์— ์ €์žฅํ•œ๋‹ค.
  • โœ… root node์— ๋„๋‹ฌํ•˜๋ฉด ํ์— ๋“ค์–ด๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ ๋ฆฌ์Šค๋„ˆ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

๐Ÿ ์ฐธ๊ณ 

์ฝด๋‹ค ํŒ€๋ธ”๋กœ๊ทธ - React Deep Diveโ€” React Event System (1)

๋ฆฌ์•กํŠธ(React)์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ(Event Handler) SyntheticEvent โ€” nativeEvent

This post is licensed under CC BY 4.0 by the author.

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ด๋ชจํ‹ฐ์ฝ˜ ํ• ์ธํ–‰์‚ฌ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

๐Ÿ“ธ 2023-01-10