useState(), useEffect() ์ ์
๋ฆฌ์กํธ์ Component๋ 'ํด๋์คํ'๊ณผ 'ํจ์ํ'์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
๊ธฐ์กด์ ํด๋์คํ ์ปดํฌ๋ํธ์์๋ ๋ช ๊ฐ์ง ์ด๋ ค์์ด ์กด์ฌํ๋ค.
- ์ํ(State) ๋ก์ง ์ฌ์ฌ์ฉ ์ด๋ ค์
- ์ฝ๋๊ฐ ๋ณต์กํด์ง
- ๊ด๋ จ ์๋ ๋ก์ง๋ค์ด ํจ๊ป ์์ฌ ์์ด ์ดํด๊ฐ ํ๋ฌ
์ด์ ๊ฐ์ ์ด๋ ค์์ ํด๊ฒฐํ๊ธฐ ์ํด, 'Hook'์ด ๋์ ๋์๋ค. (16.8 ๋ฒ์ ๋ถํฐ)
- ํจ์ํ ์ปดํฌ๋ํธ์์ State์ Lifecycle ๊ธฐ๋ฅ์ ์ฐ๋ํด์ฃผ๋ ํจ์
- 'ํด๋์คํ'์์๋ ๋์ํ์ง ์์ผ๋ฉฐ, 'ํจ์ํ'์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
๊ธฐ๋ณธ์ ์ธ Hook์ผ๋ก ์ํ๊ด๋ฆฌ๋ฅผ ํด์ผํ ๋ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ํ๋ฅผ ๋ณ๊ฒฝํ ๋๋, set
์ผ๋ก ์ค ์ด๋ฆ์ ํจ์๋ฅผ ํธ์ถํ๋ค.
const [posts, setPosts] = useState([]); // ๋น๊ตฌ์กฐํ ํ ๋น ๋ฌธ๋ฒ
useState([]);
์ ๊ฐ์ด ( )
์์ ์ด๊ธฐํ๋ฅผ ์ค์ ํด์ค ์ ์๋ค. ํ์ฌ ์์ ๋ ๋น ๋ฐฐ์ด์ ๋ง๋ค์ด ๋ ์ํฉ์ธ ๊ฒ์ด๋ค.
์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋๋ง๋ค ํน์ ์์ ์ ์ํํ๋๋ก ์ค์ ํ ์ ์๋ Hook
'ํด๋์ค' ์ปดํฌ๋ํธ์ componentDidMount()์ componentDidUpdate()์ ์ญํ ์ ๋์์ ํ๋ค๊ณ ๋ด๋ ๋๋ค.
useEffect(() => {
console.log("๋ ๋๋ง ์๋ฃ");
console.log(posts);
});
posts๊ฐ ๋ณ๊ฒฝ๋ผ ๋ฆฌ๋ ๋๋ง์ด ๋๋ฉด, useEffect๊ฐ ์คํ๋๋ค.