โจ Life Cycle ์ด๋?
์ปดํฌ๋ํธ๊ฐ ๋ธ๋ผ์ฐ์ ์์ ๋ํ๋๊ณ (Mount), ์ ๋ฐ์ดํธ ๋๊ณ (Update), ์ฌ๋ผ์ง๋ ์ผ๋ จ์ ๊ณผ์ ์ ์นญํ๋ค.
์ด๋ฌํ ๊ณผ์ ์์ ํธ์ถ๋๋ ๋ฉ์๋๋ฅผ Life Cycle Method ๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ํด๋์คํ ์ปดํฌ๋ํธ์์๋ง ์ฌ์ฉํ ์ ์๋ค. (ํจ์ํ ์ปดํฌ๋ํธ๋ React 16.8 ๋ฒ์ ๋ถํฐ ๋์ ๋์์ผ๋ฉฐ, ํ์ฌ๋ useState ๋ useEffect๋ก ๋์ฑ ๋ง์ด ํ์ฉ๋๋ค)
๊ฐ ๋จ๊ณ๋ณ๋ก ํธ์ถ๋๋ ๋ฉ์๋์ ์์์ ์ข ๋ฅ๊ฐ ๋ค๋ฅด๋ค.
โจ 1. Mount : DOM ์ ์๋ฆฌ๋จผํธ๋ฅผ ๋ฃ๋ ์์
constructor:
์ปดํฌ๋ํธ ํด๋์ค์ ์์ฑ์ ํจ์์ด์, ์ปดํฌ๋ํธ๊ฐ ์์ฑ๋ ๋ ํธ์ถ๋๋ ํจ์์ด๋ค. State์ ๋ค๋ฅธ ๊ฐ๋ค์ ์ด๊ธฐ๊ฐ์ ์ง์ ํ ๋ ์ฌ์ฉํ๋ค.
๋ํ, props ๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๊ณ , super(props) ๋ฅผ ์ ์ธํด์ฃผ์ด ๋ถ๋ชจ์ ๋ฉ์๋๋ฅผ ์์๋ฐ์ ์ ์๋๋ก ํ๋ค.
getDerivedStateFromProps: props ์ state ๊ฐ์ ๋๊ธฐํํ๋ค.
render: ํ์์์์ด๋ฉฐ, ๋ฆฌ์กํธ ์์๋ฅผ ๋ฐํํ๋ค.
ComponentDidMount: ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๊ณ ์ฒซ ๋ ๋๋ง์ด ๋๋ฌ์ ๋ ํธ์ถ๋๋ค.
โจ 2. Update : ์ปดํฌ๋ํธ์ state ๋ props ์ ๋ณํ๊ฐ ์๊ธธ ๋
getDerivedStateFromProps
shouldComponentUpdate:
true ๋ฅผ ๋ฐํํ๋ฉด ์ปดํฌ๋ํธ๋ฅผ ๋ฆฌ๋ ๋๋งํ๋ฉฐ, false ๋ฅผ ๋ฐํํ ๊ฒฝ์ฐ ๋ฆฌ๋ ๋๋ง์ ์งํํ์ง ์๊ณ ์๋์ ๋๋จธ์ง ํจ์๋ค๋ ํธ์ถํ์ง ์๋๋ค.
render: ์์ ๋์ผํ๋ค.
getSnapshotBeforeUpdate: ๋ณ๊ฒฝ๋ ์์๊ฐ DOM ์ ๋ฐ์๋๊ธฐ ์ ์ ํธ์ถ๋๋ค.
ComponentDidUpdate: ๋ฆฌ๋ ๋๋ง ํ์ ํธ์ถ๋๋ค.
โจ 3. Unmount : ์ปดํฌ๋ํธ๊ฐ DOM ์์ ์ ๊ฑฐ๋ ๋
componentWillUnmount: ์ปดํฌ๋ํธ๊ฐ ์ ๊ฑฐ๋๊ธฐ ์ ์ ํธ์ถ๋๋ค.
์ฐธ๊ณ ์๋ฃ
React ๋ฆฌ์กํธ - ์ปดํฌ๋ํธ ์๋ช ์ฃผ๊ธฐ (Component Life Cycle)
'๐ป DEV > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] React ์์ ์ด๋ฏธ์ง(Image) ์ฒจ๋ถํ๊ธฐ (0) | 2021.05.09 |
---|---|
[React] React ์ ์ํ (State) ์ ์ดํํธ ํ (Effect Hook) (0) | 2021.05.09 |
[React] React.Fragment ๋? (0) | 2021.05.09 |
[React] ๋ฆฌ์คํธ์ Key (0) | 2021.05.09 |
๋๊ธ