[React.js] Hooks - useEffect
ํ๊ทธ: react · useEffect · hooks · Callback function · Cleanup function · Dependency Array
useEffect
useEffect๋ React Hooks API์ ์ผ์ข ์ผ๋ก,ย ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋๋ง๋ค ํน์ ์์ ์ ์คํํ๊ธฐ ์ํ Hook์ด๋ค.
1.ย ๋ฐฑ์๋ ์๋ฒ์์ ๋ณ๊ฒฝ๋ REST API ๋ฐ์ดํฐ๋ฅผ ํจ์น
2.ย props, state ๋ฑ ์ํ๊ฐ์ ๋ณ๋์ ํ์ธํ๊ธฐ ์ํจ
3.ย Timers(setTimeout, setInterval) ์ ์ด์ฉํ๊ธฐ ์ํจ
๊ธฐ๋ณธ ๋ฌธ๋ฒ
useEffect(callbackย function, [dependencyย array])
1) Callback function
useEffect์ ์ฒซ ๋ฒ์งธ ์ธ์์ด์ย effect ํจ์๋ผ๊ณ ๋ ์นญํ๋ค. ๋งคย ๋ ๋๋ง ์ ์ํํ๊ณ ์ ํ๋ ์์ ์ ์ฝ๋ฐฑํจ์ ํํ๋ก ์ธ์๋ก ์ ๋ฌํ๋ค.
2) Dependency Array
useEffect์ ๋ ๋ฒ์งธ ์ธ์์ด๋ค. deps๋ ํ์์์๊ฐ ์๋๋ฏ๋ก ์๋ตํด๋ ๋๋, ์ดย deps์ ๋ชจ์ต์ ๋ฐ๋ผ useEffect์ ์ฑ์ง์ด ๋ฌ๋ผ์ง๋ค.
- undefinedย : ๋ชจ๋ ๋ ๋๋ง, ๋ฆฌ๋ ๋๋ง ์ effect ํจ์ ์คํ
- [ ] (๋น ๋ฐฐ์ด)ย : ์ต์ด(๋ง์ดํธ)์๋ง effect ํจ์ ์คํ
- [variable]ย : deps ๋ฐฐ์ด ๋ด ๊ฐ๋ค์ด ๋ฐ๋๋ ๊ฒฝ์ฐ์๋ effect ํจ์ ์คํ. ํต์ effect ํจ์์ ๊ด๋ จ๋ ๊ฐ์ด๋ ์ํ(props, state) ํด๋น.
3) Cleanup function
effect ํจ์๊ฐ ๋ฐํ(return)ํ๋ ํจ์๋ฅผ cleanup ํจ์๋ผ๊ณ ํ๋ค. ์ด ํจ์๋,ย deps๊ฐ ๋น์๋ค๋ฉด ์ธ๋ง์ดํธ ์, ๊ฐ์ด ์๋ค๋ฉด ํด๋น ๊ฐ์ ์ ๋ฐ์ดํธ ์ง์ ์ ์คํ๋๋ค.
๊ทธ๋ ๊ธฐ์,ย ์ด๋ฒคํธ ๋ฆฌ์ค๋ ์ญ์ ๋ ํด๋ก์ ํด์ ๋ฑ์ ์ญํ ์ ์ฃผ๋ก ๋ด๋นํ๊ธฐ ๋๋ฌธ์ Clean-up ์ด๋ผ๊ณ ์นญํด์ง๊ณค ํ๋ค.
ํ๊ณ
๋ ๋๋ง ์ต์ ํ ๋ฑ ๊ณ ๋ คํด์ผ ๋ ์กฐ๊ฑด์ด๋ ์๋์๋ฆฌ๋ฅผ ์ ๋๋ก ๋ชจ๋ฅด๊ณ ์ผ๋ค๊ณ ๋๊ผ๋ค.
useEffect๋ฅผ ๋จ์ํ ์ ๋ฐ์ดํธ ์ฉ๋๋ก ์ฌ์ฉํด์จ ๋๋ก์๋, ์ ๋ง ๊ณ ๋ คํด์ผ ํ ๋ถ๋ถ์ด ๋ง๋ค