728x90
๋ฐ˜์‘ํ˜•

๋งˆ์šดํŠธ 2

React] Mount & Rerender (LifeSycle)

React๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ, ํ™”๋ฉด์ด ๊ทธ๋ ค์ง€๋Š” ๋™์ž‘ ์ˆœ์„œ์™€ ํ™”๋ฉด์„ ๋‹ค์‹œ ๊ทธ๋ฆฌ๊ฒŒ ๋˜๋Š” ๋ฆฌ๋ Œ๋”๋ง ์ˆœ์„œ์ž…๋‹ˆ๋‹ค. Mount (๋งˆ์šดํŠธ) ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ๋ Œ๋”๋ง ๋˜๋Š” ๊ณผ์ •์„ ๋งˆ์šดํŠธ๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ Œ๋”๋ง ๋œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๊ณผ์ •์„ Unmount(์–ธ๋งˆ์šดํŠธ)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ํ˜ธ์ถœ ๊ตฌํ˜„๋ถ€ ์‹คํ–‰ props ์ „๋‹ฌ๋ฐ›๊ณ , hook ๋‚ด๋ถ€ ๋ณ€์ˆ˜, ํ•จ์ˆ˜ ์ƒ์„ฑ. (๋‚ด๋ถ€ ๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜๋Š” hook์— ์žˆ๋Š” state๋‚˜ function์„ ์ œ์™ธ. ์ด๋“ค์€ ๋ณ„๋„๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์–ด ๊ด€๋ฆฌํ•จ.) ๊ฐ€์ƒ DOM์„ ์ƒ์„ฑ ์ปค๋ฐ‹ ์‹ค์ œ DOM์— ๋ฐ˜์˜ useLayoutEffect ํ™”๋ฉด์— Paint ํ•˜๊ธฐ ์ „์—, useLayoutEffect์— ๋“ฑ๋กํ•ด ๋‘” effect '๋™๊ธฐ'๋กœ ์‹คํ–‰๋œ๋‹ค. ์‹ค์ œ๋กœ ํ•ด๋‹น ํ›…์€ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ์Œ. ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ํ™•..

Front-End/React 2023.06.20

React] Hook : useEffect

useEffect Side-Effect๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ Hook์ž…๋‹ˆ๋‹ค. Side-Effect : ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ํ•จ์ˆ˜ ์™ธ๋ถ€์— ์กด์žฌํ•˜๋Š” ๊ฐ’์ด๋‚˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ๋“ฑ์˜ ํ–‰์œ„๋กœ, ๋ Œ๋”๋ง ๋œ ์ดํ›„ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š” ๋ถ€์ˆ˜์ ์ธ ๊ฒƒ๋“ค์„ ์ง€์นญ uesEffect(() ⇒ { … } ,[deps]) ๋‘ ๋ฒˆ์งธ ์ธ์ž์ธ deps์— state๊ฐ’์„ ๋„ฃ๊ณ , state๊ฐ’์ด ๋ณ€ํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น useEffect๋ฅผ ์‹คํ–‰. ๋นˆ ๋ฐฐ์—ด๋กœ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ, ๋ Œ๋”๋ง ํ›„ 1๋ฒˆ๋งŒ ์‹คํ–‰. ์ข…์†์„ฑ ๋ฐฐ์—ด์„ ์•„์˜ˆ ์ง€์ •ํ•˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ, ๋ฆฌ๋ Œ๋”๋ง ๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰. useEffect๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‹œ์ ์€ ๋ Œ๋”๋ง ๊ฒฐ๊ณผ๊ฐ€ DOM์— ๋ฐ˜์˜๋  ๋•Œ, ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์‚ฌ๋ผ์ง€๊ธฐ ์ง์ „ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. 2023.06.20 - [Front-End/React] - React ๋™์ž‘..

Front-End/React 2023.06.20
728x90
๋ฐ˜์‘ํ˜•