Life Cycle
Last updated
Last updated
์ปดํฌ๋ํธ๊ฐ ์์ฑ๋๊ณ ์ฌ๋ผ์ง๊ธฐ๊น์ง, ์ฆ ์ฑ์ด ์คํ๋๊ณ ์ข ๋ฃ๋ ๋๊น์ง ์คํ๋๋ ์ผ๋ จ์ ๊ณผ์ ์ ๋งํ๋ค.
์ฑ์ด ์คํ๋๊ณ ์ข ๋ฃ๋๊ธฐ๊น์ง, ๋ฉ์๋๋ก ๋๋์ด ๊ด๋ฆฌ๋๋๋ฐ ์ด๊ฒ์ ๋ผ์ดํ ์ฌ์ดํด ๋ฉ์๋ ๋ผ๊ณ ํ๋ค.
ํฌ๊ฒ 3๊ฐ์ง ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง๋๋ฐ, ๋ง์ดํธ, ์ ๋ฐ์ดํธ, ์ธ๋ง์ดํธ ์ด๋ค.
๋ง์ดํธ๋, DOM์ด ์์ฑ๋์ด ๋ธ๋ผ์ฐ์ ์ ๋ํ๋๋ ๊ณผ์ ์ด๋ค
constructor
์ปดํฌ๋ํธ๋ฅผ ์์ฑํ ๋๋ง๋ค ์คํ๋๋ ๋ฉ์๋ (๊ฐ์ฅ ๋จผ์ ์คํ๋๋ค.)
ํด๋น ์ปดํฌ๋ํธ์ state๋ ๊ฐ์ฒด๋ฅผ ์ ์ธํ ๋ ์ฌ์ฉ๋๋ค.
getDerivedStateFromProps
์ปดํฌ๋ํธ์ props๋ก ๋ฐ์์จ ๊ฐ์ state์ ๋ฃ์๋ ์ฌ์ฉ๋๋ ๋ฉ์๋.
์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋๊ธฐ ์ ์ ์คํ๋๋ค. (๋ฆฌ๋ ๋๋ง๋๋ ๋ง์ฐฌ๊ฐ์ง)
render
์ปดํฌ๋ํธ๋ฅผ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ํ ๋ ์ฌ์ฉ๋๋ ๋ฉ์๋.
๋ฉ์๋ ๋ค ์ค๊ดํธ์์ ์๋ JSX๋ฅผ ๋ณด์ฌ์ค๋ค.
componentDidMount
์ปดํฌ๋ํธ๊ฐ ์ฒซ ๋ ๋๋ง์ ๋ง์น ๋ค์ ์คํ๋๋ ๋ฉ์๋.
ํธ์ถ์์ ์ ์ปดํฌ๋ํธ๋ ๋ธ๋ผ์ฐ์ ์ ๋ํ๋ ์๋ค.
axios, fetch ๋ฑ์ ๋ฉ์๋๋ฅผ ์ด์ฉํด ํด๋น ์ปดํฌ๋ํธ์์ ์์ฒญํ๋ ์์ ์ ์คํํ๋ค.
์ปดํฌ๋ํธ์ ๋ณ๊ฒฝ์ฌํญ์ด ์์๋ ์ค์ํ๋ค. (4๊ฐ์ง์ ๊ฒฝ์ฐ ์กด์ฌ) ์ ๋ฐ์ดํธ๋ฅผ ๊ฑฐ์น ์ปดํฌ๋ํธ๋ ๋ฆฌ๋ ๋๋ง์ ํตํด ๋ธ๋ผ์ฐ์ ์ ํ์.
getDerivedStateFromProps
์ปดํฌ๋ํธ์ props, state์ ๋ณ๊ฒฝ์ด ์ผ์ด๋ฌ์๋ ํธ์ถ๋๋ ๋ฉ์๋
๋ง์ดํธ ๊ณผ์ ์์ ์คํ๋ ๊ฒ๊ณผ ๋์ผํ๋ค.
shouldComponentUpdate
์ปดํฌ๋ํธ์ ๋ฆฌ๋ ๋๋ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฉ์๋.
๋ฐํ๊ฐ์ด boolean์ด๊ณ , ์ด ๊ฐ์ ๋ฐ๋ผ ๋ฆฌ๋ ๋๋ง์ ๊ฒฐ์ ํ๋ค.
render
์ปดํฌ๋ํธ์ ๋ฆฌ๋ ๋๋ง์ ์ํด ๋ง์ดํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ง๊ณ ์๋ ๋ฉ์๋.
getSnapshotBeforeUpdate
์ปดํฌ๋ํธ์ ๋ฆฌ๋ ๋๋ง ์ง์ ์ ์คํ๋๋ ๋ฉ์๋.
๋ ๋๋ง ์ง์ ์ ๋ ๋๋ง ์์ ํฌ๊ธฐ๋ ์คํฌ๋กค ์์น๋ฑ์ DOM์ ์ ๋ณด์ ์ ๊ทผํ ๋ ์ฌ์ฉ๋๋ค.
componentDidMount
์ปดํฌ๋ํธ๊ฐ ๋ชจ๋ ์ ๋ฐ์ดํธ ๊ณผ์ ์ ๋ง์น ํ์ ์คํ๋๋ ๋ฉ์๋.
3๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ธ snapshot์ getSnapshotBeforeUpdate ๋ฉ์๋๋ก ๋ถํฐ ๋ฐ์์จ DOM ์ ๋ณด์ด๋ค.
DOM์์ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ฑฐํ๋ ๊ณผ์ .
componentWillUnmount
์ปดํฌ๋ํธ๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์ฌ๋ผ์ง๊ธฐ ์ ์ ์คํ๋๋ ๋ฉ์๋.
DOM์ ์ง์ ๋ฑ๋กํ๋ ์ด๋ฒคํธ๋ค์ ์ ๊ฑฐํ๋ค.
์์์ ์ธ๊ธํ ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋์ ๊ณผ์ ์ ํด๋์คํ ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ์ด๊ณ , ํจ์ํ ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ง ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋๋ค.
constructor, getDerivedStateFromProps
ํด๋์คํ ์ปดํฌ๋ํธ์์ constuctor ๋ฉ์๋๊ฐ ์ํํ๋ ๊ธฐ๋ฅ์ ํจ์ํ ์ปดํฌ๋ํธ์์ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ์ํํ๋ค.
useState
๋ฅผ ์ฌ์ฉํ์ฌ state๋ฅผ ์ ์ธํ๊ณ , ์ปดํฌ๋ํธ ๋ด๋ถ์์ ์ฌ์ฉ๋ ๋ฉ์๋๋ฅผ ์ ์ธํ๋ค.
render
ํจ์ํ ์ปดํฌ๋ํธ์ return ๋ถ๋ถ์ด ์ํํ๋ค.
return์์ ์์ฑ๋ JSX๋ฅผ ๋ฐํ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ํ๋ค.
์์ constructor ๋ถ๋ถ์์ ์ ์ธํ state๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
ํ์ง๋ง state๋ฅผ ๋ณ๊ฒฝํ๋ setState ๋ฉ์๋๋ ์ฌ์ฉํ ์ ์๋ค.
componentDidMount
ํจ์ํ ์ปดํฌ๋ํธ๋ ์ด ๊ธฐ๋ฅ์ useEffect
๋ฅผ ํตํ์ฌ ๊ตฌํํ๋ค.
์ปดํฌ๋ํธ์ ๋ ๋๋ง ์ดํ ์คํ๋๋ ๋ฉ์๋
ํด๋์คํ ์ปดํฌ๋ํธ์ ๋ชจ๋ ๊ณผ์
ํจ์ํ ์ปดํฌ๋ํธ๋ useEffect
๋ฅผ ํตํ์ฌ ์
๋ฐ์ดํธ ๊ณผ์ ์ ๋ชจ๋ ๋ฉ์๋๋ฅผ ๋์ ํ๋ค.
์ปดํฌ๋ํธ ๋ด๋ถ์ ๋ณํ๊ฐ ๋ฐ์ํ์๋ ์คํ๋๋ค.
props, ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ๋ฆฌ๋ ๋๋ง, ํด๋น ์ปดํฌ๋ํธ state์ ๋ณํ ๊ฐ ์ผ์ด๋ฌ์๋ ์คํ๋๋ค.
componentWillUnmount
์
๋ฐ์ดํธ ๊ณผ์ ๊ณผ ๋์ผํ๊ฒ useEffect
๋ฉ์๋๊ฐ ๋์ ํ์ฌ ์ํํ๋ค.
์์ ์ฝ๋์์๋ unmountComponent๋ผ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฌ์ App์ปดํฌ๋ํธ์์ ์ฌ์ฉ์ค์ด๋ค.
App ์ปดํฌ๋ํธ์์ unmountState์ ์ํ์ ๋ฐ๋ผ unmountComponent์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋ง ๋๋ ์ธ๋ง์ดํธ ํ๋ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ค์ํ๊ณ ์๋ค. ์ด ๊ฒฝ์ฐ ์ธ๋ง์ดํธ ์ฌ์ดํด์ด ๋ฐ์ํ๋ค.
ํน์ง
render ๋ฉ์๋์ Component ์์ ํ์
React Hook ์ฌ์ฉ, ๊ฐ๋จํ Component ์ ์ธ
๋จ์
๋ง์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ, state, props ์ฌ์ฉ์ด ๋ถํธ
useState, useEffect์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ state, ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผ ํ๋ค.