ํฌ๊ฒ ๋ง์ดํธ, ์
๋ฐ์ดํธ, ์ธ๋ง์ดํธ ์ธ๊ฐ์ง ์ ํ์ผ๋ก ๋๋ ์ ์์ต๋๋ค
๋จผ์ ๋ง์ดํธ๋ DOM์ด ์์ฑ๋์ด ์น ๋ธ๋ผ์ฐ์ ์ ๋ํ๋ ๋์ด๋ฉฐ
๋ฐ๋๋ก ์ธ๋ง์ดํธ๋ DOM์ด ์ ๊ฑฐ๋๋ ๊ฒ์ ๋ปํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ์
๋ฐ์ดํธ๋ DOM์ ๋ณํ๊ฐ ์์ ๋ ์ฆ, ๋ฆฌ๋ ๋๋ง์ด ์ผ์ด๋ฌ์๋์
๋๋ค.
ํด๋์คํ ์ปดํฌ๋ํธ์์๋ง ์ฌ์ฉํ ์ ์๋ ๋ฉ์๋์
๋๋ค.
๋ผ์ดํ์ฌ์ดํด์ ๋ฐ๋ผ ๋ง์ดํธ๋ ๋ constructor ๋ฉ์๋๊ฐ ์คํ๋๋ฉฐ
์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ๊ธฐ ์ํด render ๋ฉ์๋๊ฐ ์คํ๋ฉ๋๋ค.
๋ ๋๋ง์ด ์๋ฃ๋ ํ componentDidMount ๋ฉ์๋๊ฐ ์คํ๋ฉ๋๋ค.
์
๋ฐ์ดํธ๊ฐ ๋ฐ์ํ๋ค๋ฉด shouldComponentUpdate ๋ฉ์๋๋ฅผ ํตํด
๋ฆฌ๋ ๋๋ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ณ componentDidUpdate๊ฐ ์คํ๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ธ๋ง์ดํธ ๋ ๋ componentWillUnmount ๋ฉ์๋๊ฐ ์คํ๋ฉ๋๋ค.
React 16.8๋ฒ์ ๋ถํฐ ํจ์ํ ์ปดํฌ๋ํธ๋ useEffect๋ฅผ ํตํด ๋ผ์ดํ์ฌ์ดํด
๋ฉ์๋๋ฅผ ๋น์ทํ๊ฒ ์ฌ์ฉ๊ฐ๋ฅํฉ๋๋ค.
16.8๋ฒ์ ์ด์ ์์๋ ํด๋์คํ์ ๊ฒฝ์ฐ ์ํ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ ๋ผ์ดํ์ฌ์ดํด
๋ฉ์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ์ต๋๋ค. ๋ฐ๋๋ก ํจ์ํ์ ์ํ๊ฐ๊ณผ ๋ผ์ดํ์ฌ์ดํด ์ ๋ถ
๊ฐ์ง ์ ์์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ๋๋ง์ ์ํด์๋ ํจ์ํ ์ปดํฌ๋ํธ๋ retrun์ ์ด์ฉํ๋ฉฐ ํด๋์คํ์
render ๋ฉ์๋๋ฅผ ์ด์ฉํฉ๋๋ค.
16.8๋ฒ์ ์ Hook ๋ฑ์ฅ์ดํ ํจ์ํ ์ปดํฌ๋ํธ๋ ์ํ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ
useEffect๋ฅผ ํตํด ๋ผ์ดํ์ฌ์ดํด ๋ฉ์๋๋ฅผ ๋น์ทํ๊ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ ธ
๋ฉ๋ชจ๋ฆฌ ๋ฆฌ์์ค๋ฅผ ๋ ์ฌ์ฉํ๋ ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ React ๊ณต์๋ฌธ์์์
๊ถ์ฅํ๊ณ ์์ต๋๋ค.
๋ฆฌ์์ค ์๋ชจ๊ฐ ์ ์์ด์ : ํจ์๋ ํ๋ฒ ์คํ๋๊ณ ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์์ ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ