๐ฅ ์ค๋ ์ด๋์ ๋์ ํด๋ณด์ จ๊ณ , ๋ฌด์์ ๋ฐฐ์ฐ์ จ๋์?
- ํ๋ก๊ทธ๋๋จธ์ค ์ด๋ชจํฐ์ฝ ํ ์ธํ์ฌ - ์๋ฐ์คํฌ๋ฆฝํธ
- ์ธํ์ฝ 2022 ๋ค์๋ณด๊ธฐ
- ์์ฆ ๊ณต๋ถํ๊ธฐ ์ซ๊ฑฐ๋ ์๊ฐ์ด ๋จ์ ๋ ๋ฃ๊ณ ์๋ค.
- ์ธํฐ๋ํฐ๋ธ ์น ๊ฐ๋ฐ ์ ๋๋ก ์์ํ๊ธฐ - ์น์
1. CSS ๋ณํ๊ณผ ์ ๋๋ฉ์ด์
- ์ด์ ์ ๊ณต๋ถํ๋๋ฐ ๊ธฐ์ต์ด ์๋์ ๋ณต์ต transition๊ณผ transform ์ฌ์ฉํ๊ธฐ ์ฐธ๊ณ !
๐ ํ์ตํ์๋ฉด์ ๊ถ๊ธํ์ ๋ถ๋ถ์ด๋, ์ด๋ ค์ ๋ ์ ์ ๋ญ๊น์?
- ํ๋ก๊ทธ๋๋จธ์ค ์ด๋ชจํฐ์ฝ ํ ์ธํ์ฌ - ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํธ๋๋ฐ ๊ฑฐ์ ์ดํ ๊ฑธ๋ ธ๋ค. ์์ ํ์์ผ๋ก ํ์ด์ผ ํ๋ค๋ ํํธ๋ฅผ ์ป๊ณ ๋ ์ด๋ป๊ฒ ๊ตฌํํ ์ง ์๊ฐํ๋ ๊ฒ์ ๋ง์ ์๊ฐ์ ์์ํ๋ค. ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค์ ๋ต์์ ๋ดค๋๋ฐ ๋ ๊ฐ๋จํ๋ฐ ๊ทธ๊ฑธ ์์ ํ ์ดํดํ๋๋ฐ๋ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค. ๋จ์ด ์์ฑํ ์ฝ๋๋ ์ธ์ ๋ด๋ ์ด๋ ต๋คโฆ
๐ ๋ด์ผ์ ์ด๋ป๊ฒ ํด๋ณด๊ณ ์ถ์ผ์ธ์?
- ์ธํฐ๋ํฐ๋ธ ์น ๊ฐ๋ฐ ์ ๋๋ก ์์ํ๊ธฐ ๊ฐ์๋ฅผ ๋ ๋ค์ผ๋ฉด์ 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