๐โโ๏ธReact์์์ ๋ฐ์ดํฐ ํ๋ฆ, ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ์ดํดํ ์ ์๋ค.
๐โโ๏ธ์ด๋ค ์ปดํฌ๋ํธ์ state๊ฐ ์์นํด์ผ ํ๋์ง ์ ์ ์๋ค.
๐โโ๏ธState ๋์ด์ฌ๋ฆฌ๊ธฐ์ ๊ฐ๋
์ ์ดํดํ ์ ์๋ค.
์์์ปดํฌ๋ํธ๊ฐ ๋ถ๋ชจ์ปดํฌ๋ํธ๋ก๋ถํฐ ์ํ๋ณ๊ฒฝํจ์๋ฅผ ๋ฐ์์จ๋ค. ์์์ปดํฌ๋ํธ๊ฐ props๋ก ๋ฐ์์จ ์ํ๋ณ๊ฒฝํจ์๋ฅผ ํธ์ถํด์ ๋ถ๋ชจ์ปดํฌ๋ํธ์ state๋ฅผ ๋ณ๊ฒฝ์ํฌ ์ ์๋ค.
๐โโ๏ธ์ํ ๋ณ๊ฒฝ ํจ์๊ฐ ์ ์๋ ์ปดํฌ๋ํธ์, ์ํ ๋ณ๊ฒฝ ํจ์๋ฅผ ํธ์ถํ๋ ์ปดํฌ๋ํธ๊ฐ ๋ค๋ฆ์ ์ ์ ์๋ค.
๐โโ๏ธSide effect๊ฐ ์ด๋ค ์๋ฏธ์ธ์ง ์ ์ ์๋ค.
๐โโ๏ธReact ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ๋ side effect๋ก๋ถํฐ ๋ถ๋ฆฌํด์ ์๊ฐํ ์ ์๋ค. (๋น์ฆ๋์ค ๋ก์ง๊ณผ ํํ ์์ญ ๊ตฌ๋ถ)
๐โโ๏ธSide effect์ ์๋ฅผ ๋ค ์ ์๋ค.
๐โโ๏ธEffect Hook์ ์ด์ฉํด ๋น๋๊ธฐ ํธ์ถ ๋ฐ AJAX ์์ฒญ๊ณผ ๊ฐ์ side effect๋ฅผ React ์ปดํฌ๋ํธ ๋ด์์ ์ฒ๋ฆฌํ ์ ์๋ค.
๐โโ๏ธEffect Hook์์์ dependency array ์ฌ์ฉ๋ฒ์ ์ดํดํ ์ ์๋ค.
๐โโ๏ธ์ปดํฌ๋ํธ ๋ด์์ ๋คํธ์ํฌ ์์ฒญ์, ๋ก๋ฉ ํ๋ฉด๊ณผ ๊ฐ์ด ๋ณด๋ค ๋์ UI๋ฅผ ๋ง๋๋ ๋ฒ์ ์ดํดํ ์ ์๋ค.
useEffect(ํจ์, [])
์ฒ์ ํ๋ฉด์ด ๋ณด์ผ๋(์ปดํฌ๋ํธ๊ฐ ์ฒ์ ๋ ๋๋ง๋ ๋)์๋ง ํ๋ฒ ์คํ์ด๋๋ค.
์ธ๋ถ API๋ฅผ ํตํด ๋ฆฌ์์ค๋ฅผ ๋ฐ์์ค๊ณ ๋์ด์ API ํธ์ถ์ด ํ์ํ์ง ์์ ๋์ ์ฌ์ฉํ๋ค.
useEffect(ํจ์)
๊ธฐ๋ณธ ํํ์ useEffect๋ ์ปดํฌ๋ํธ๊ฐ ์ฒ์ ์์ฑ๋๊ฑฐ๋, props๊ฐ ์ ๋ฐ์ดํธ๋๊ฑฐ๋, ์ํ(state)๊ฐ ์ ๋ฐ์ดํธ๋ ๋ effect ํจ์๊ฐ ์คํ๋๋ค.
์ด๋ ํ ์ ๋ฌ ์ธ์๊ฐ ์ฃผ์ด์ง ๊ฒฝ์ฐ, ํญ์ ๋๊ฐ์ ๊ฐ์ด ๋ฆฌํด๋จ์ ๋ณด์ฅํฉ๋๋ค. ๊ทธ๋์ ์์ธก ๊ฐ๋ฅํ ํจ์์ด๊ธฐ๋ ํฉ๋๋ค.
ํจ์์ ์
๋ ฅ์ด ์๋ ๋ค๋ฅธ ๊ฐ์ด ํจ์์ ๊ฒฐ๊ณผ์ ์ํฅ์ ๋ฏธ์น๋ ๊ฒฝ์ฐ, ์์ ํจ์๋ผ๊ณ ๋ถ๋ฅผ ์ ์์ต๋๋ค.
๐โโ๏ธ Math.random()์ ์์ ํจ์๊ฐ ์๋๋๋ค. ์์ผ๊น์? ์์ธกํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๐โโ๏ธ ์ด๋ค ํจ์๊ฐ fetch API๋ฅผ ์ด์ฉํด AJAX ์์ฒญ์ ํ๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค. ์ด ํจ์๋ ์์ ํจ์๊ฐ ์๋๋๋ค. ์์ผ๊น์?
useEffect(ํจ์)
์ด๋ ๊ฒ๋ง ์ ํ์ ธ์์ด์ ์ด ํํ๊ฐ ๋ฌดํ๋ฃจํ๋ฅผ ์ผ์ผํค๋์ค์๊ณ ์ฒ์์ ์ฐฉ๊ฐํ์๋ค. ํ์ง๋ง useEffect์ ๋ฌธ์ ๊ฐ ์๋์๋ค. useEffect๊ฐ ์คํ๋๋ ๊ฒฝ์ฐ๋ ์ธ๊ฐ์ง๊ฐ ์๋ค.
1. ์ปดํฌ๋ํธ๊ฐ ์ฒ์ ์์ฑ๋๊ฑฐ๋
2. props๊ฐ ์
๋ฐ์ดํธ ๋๊ฑฐ๋
3. state๊ฐ ์
๋ฐ์ดํธ ๋ ๋์ด๋ค.
์์ ์ฝ๋์์ [filter]
๋ฅผ ์ง์ฐ๋ฉด ๋ฌดํ ๋ฃจํ๊ฐ ๊ฑธ๋ฆฌ๋ ์ด์ ๋ useEffect ์์ฒด ๋๋ฌธ์ด ์๋๋ผ ์ปดํฌ๋ํธ๊ฐ ์๊พธ ๋ ๋๋ง๋์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ณผ์ ์ ์ด๋ ๋ค. ์ฒ์์ ํ๋ฉด์ด ๋ณด์ธ๋ค(์ฒซ ๋ ๋๋ง) -> useEffect๊ฐ ์คํ๋๋ค. -> filter๋ผ๋ state์ ์ํ๊ฐ setProverbsํจ์์ ์ํด์ ๋ณ๊ฒฝ๋๋ค. -> state๊ฐ ๋ณํ๋ค. -> ๋ ๋ ๋๋ง ๋๋ค. ์ด๊ฒ ๋ฌดํ๋ฐ๋ณต๋์ด์ ์ฝ์์ฐฝ์ด ๋จนํต์ด ๋ ๊ฒ์ด๋ค.
์ค๋ ๋ง๋ ํ์ด๋ถ๊ป ๋ง์ ๊ฒ์ ๋ฐฐ์ ๋ค. react ๋ฐ์ดํฐ์ ํ๋ฆ(์์์ปดํฌ๋ํธ, ๋ถ๋ชจ์ปดํฌ๋ํธ์ ๊ด๊ณ)์ ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ฆฌ๋ฉด ์ข๋ค๋ ์ . ๋ฆฌ์กํธ ํ์ผ์ด ์ด๋คํ์์ผ๋ก ๊ตฌ์ฑ๋์ด์๋์ง ๋ฏธ๋ฆฌ ๊ผผ๊ผผํ๊ฒ ์ดํด๋ณธ ๋ค์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ. ํญ์ ๋จ์๊ฒ ์ค๋ช
ํด์ค๋ค๊ณ ์๊ฐ์ ํ๊ณ ๊ณต๋ถํด์ผํ๋ค๋ ์ .
๊ทธ๋ฆฌ๊ณ ์ผ์ฐ์ข ์์ผ๊ฒ ๋ค. ์์ฆ ๋ฆ๊ฒ์์๊ทธ๋ฐ์ง ๋งค์ผ 9์๋ง๋ค ์ ์ ์ ๋ชป์ฐจ๋ฆฐ๋ค ใ
ใ