๐ Study/JS, JQuery
[React JS][๋์ฝ์ฝ๋ฉ] Effects
kkh1902
2022. 2. 17. 17:21
728x90
๋ฐ์ํ
6.0 Introduction
- React๋ก ์์ ํ ๋ ๋ง์ง๋ง์ผ๋ก ๊ฐ์ฅ ์ค์ํ ๊ฑธ ๊ณต๋ถํ ๊ฑฐ๋ค.
- ๋ฌธ์ ๋ฅผ ํ๋ ์ ์ ํ ๊ฑฐ๋ค.
- ์ฐ๋ฆฌ๋ ๊ณ์ state๋ฅผ changeํด ์๊ณ , ๊ทธ๋ด ๋ ๋ง๋ค ์ด ๋ชจ๋ ๊ฒ์ด ๋ค์ ์คํ๋๋ ๊ฒ์ ์ต์ ํ๋ค.
- ๋ฌธ์
- component ์ฒ์ render๋ ๋๋ง ์ฝ๋๊ฐ ์คํ๋๊ธธ ์ํ ์ ์๋ค.
- ์ง๊ธ์ ๋ด state๊ฐ ๋ณํ ๋๋ง๋ค ๋งค๋ฒ ์ด console.log๊ฐ ์คํ๋ ๊ฑฐ๋ค.
- ๊ฐ๋์ ์ฒซ๋ฒ์งธ๋ก renderํ ๋๋ง ์ฝ๋๋ฅผ ์คํํ๊ณ ์ถ์ ์๋ ์๋ค.
- ์ฒซ๋ฒ์งธ render์๋ง ์ฝ๋๊ฐ ์คํ๋๊ณ , ๋ค๋ฅธ state๋ณํ์๋ ์คํ๋์ง ์๋๋ก ํ๋ ๊ฑฐ๋ค.
- ์ฐ๋ฆฌ๋ ์ด๋ป๊ฒ ํน์ ์ฝ๋๋ค์ด ์ฒซ๋ฒ์งธ componet render์์๋ง ์คํ๋๊ฒ ํ๋์ง ๋ฐฐ์ฐ๊ณ ์ถ๋ค.
- ์ฒ์ ํ๋ฒ๋ง
- ๋์ค์ state๊ฐ ๋ณํํด๋, ๊ทธ ์ฝ๋๋ ๋ค์ ์คํ๋์ง ์๋๋ค.
- ๋ง์ง๋ง ์ ๋ฆฌ
- ๋ด๊ฐ state๋ฅผ ๋ณ๊ฒฝํ ๋ ๋ชจ๋ code๋ค์ ๋ค์ ์คํ๋๋ค ํญ์
- ๊ฐ๋์ ๋์ componet ๋ด๋ถ์ ๋ช๋ช ์ฝ๋๋ ์ฒ์ ๋ฑ ํ๋ฒ๋ง ์คํ๋๊ณ ๋ค์๋ ์คํ๋์ง ์๋๋ก ํ๊ณ ์ถ์ ๊ฑฐ๋ค.(๋ค์ ๊ฐ์)
6.1 useEffect
- ๊ฐ๋์ ์ฐ๋ฆฌ๊ฐ ํน์ ์ฝ๋์ ์คํ์ ์ ํํ๊ณ ์ถ๋ค.
- component๊ฐ ๋งจ ์ฒ์ render๋ ๋
- ์ฝ๋๋ฅผ ๋ฑ ํ๋ฒ๋ง ์คํํ๊ณ , ๋ค์๋ ์คํํ์ง ์์ ๊ฑฐ๋ค.
- React JS๊ฐ ๊ฐ๋ฐํ ๊ฒ useEffect๋ผ๊ณ ๋ถ๋ฆฌ๋ function์ด ์๋ค.
- ์ฒซ ๋ฒ์งธ argument๋ ์ฐ๋ฆฌ๊ฐ ๋ฑ ํ๋ฒ๋ง ์คํํ๊ณ ์ถ์ ์ฝ๋๊ฐ ๋ ๊ฑฐ๋ค.
- ๋ ๋ฒ์งธ argument๋ ๋ง๋ฒ๊ฐ์ ์น๊ตฌ์ด๋ค.
- useEffect์๋ component๊ฐ ์ฒ์ renderํ ๋ ์คํ๋๊ณ ๋ค์๋ ์คํ๋์ง ์์ funtion์ ๋ฃ์ด์ค ๊ฑฐ๋ค.
- useEffect์๊ฒ ์ฒซ๋ฒ์งธ argument์ ํจ์๋ฅผ ๋ฃ๊ณ ๋ ๋ฒ์งธ argument๋ก์จ ๋น array๋ฅผ ํ๋ ์ค ๊ฑฐ๋ค.
- useEffect function์ ์ฝ๊ฒ ๋งํด์ ์ฐ๋ฆฌ ์ฝ๋๊ฐ ๋ฑ ํ๋ฒ๋ง ์คํ๋ ์ ์๋๋ก ๋ณดํธํด์ค๋ค.
- ์ฐ๋ฆฌ๋react JS๊ฐ ์ฐ๋ฆฌ์๊ฒ ์ธ์ ์ฝ๋๋ฅผ ์คํํ ์ง ์ํ ์ง ๊ฒฐ์ ํ tool์ ์ ๊ณตํ๋ค๋ ๊ฑธ ์๋ค.
6.2 Deps
- useeffect๊ฐ ์์ผ๋๊น API๋ฅผ ํ๋ฒ ๋ง ํธ์ถํ ์ ์๋ค.
- ๋ฌธ์ ๋ฐ์
- ๋ฒํผ์ ํด๋ฆญํ๋๋ marvel์ด ๊ณ์ ๊ฒ์๋จ
- ๋๋ search Keyword์ ๋ณํ๊ฐ ์์ ๋ ๋ง marvel ์ํ๋ฅผ ๊ฒ์ํ๊ณ ์ถ์ ๊ฑฐ๋ค.
- counter๊ฐ ๋ณํํ ๋์๋ ๊ฒ์ํ๊ณ ์ถ์ง๋ ์๋ค.
- ์ด๊ฒ ๋ฐ๋ณต ๋๋ ์ด์ ๋ ์ฐ๋ฆฌ๊ฐ state๋ฅผ ๋ณํ์ํฌ ๋๋ง๋ค ๋ค ์คํ ๋๊ธฐ ๋๋ฌธ
- ๋ด ์ฝ๋์ ํน์ ํ ๋ถ๋ถ๋ง์ด ๋ณํํ์ ๋ ์ํ๋ ์ฝ๋๋ค์ ์คํํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ณ ์ถ๋ค.
- movie state๊ฐ ๋ณํํ ๋๋ง user๊ฐ ์ํ๋ ์ํ๋ฅผ ๊ฒ์์ ํ๊ณ ์ถ๋ค.
- → useEffect๋ฅผ ์ฐ์
- ์ด์ง ๋ฌธ์ ๋ฐ์
- keyword๊ฐ ๋น ๊ฐ์ด ์๋๋ผ๋ฉด ๊ทธ ๋ keyword ๊ฒ์ (์กฐ๊ฑด)
6.3 Recap
- react.js ์์ ๊ฐ์ฅ ๋ฉ์ง ์ ์ ๋ฐ๋ก component๋ฅผ refresh(์๋ก๊ณ ์นจ) ํ๋ค๋ ๊ฑฐ๋ค.
- ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ฌ ๋ ๋ง๋ค UI๋ฅผ refreshํ๋ค.
- ์ฐ๋ฆฌ๊ฐ ์ง์ refreshํด๋ ๋์ง ์์๋ ๋ผ์ ์ข๋ค.
- ๊ฐ๋์ ๋์ component์์ ๋ฑ ํ๋ฒ๋ง ์คํํ๊ณ ์ถ์ ์ฝ๋๊ฐ ์์ ์๋ ์๋ค.
- ์ ์ฝ๋๋ ์ฒ์ ํ๋ฒ๋ง ์คํ๋ ๊ฑฐ๋ค.
- useEffect๋ react.js๊ฐ ๋์ํ๋ ๊ด์ ์์ ๋งํ์๋ฉด ๋ฐฉ์ด๋ง ๊ฐ์๊ฑฐ๋ค.
6.4 Cleanup
Cleanup funcion ์ด๋ผ๋ ๊ฑธ ๋ฐฐ์๋ณผ๊ฑฐ๋ค.
- setShowing์ ํตํด ์ด์ value๋ฅผ ๋ฐ์์จ ๋ค์์, ๊ทธ value์ ๋ฐ๋๊ฐ์ returnํ ๊ฑฐ๋ค.
- ์ฐ๋ฆฌ๊ฐ ๋ณด์ฌ์ฃผ๊ฑฐ๋ ์จ๊ธธ ๊ฒ์ ๋ค๋ฅธ component์ผ๊ฑฐ๋ค.
- component๊ฐ destroy๋ ๋๋ ์ฝ๋๋ฅผ ์คํํ ์ ์๋ค.
- ๊ทธ๋ฌ๊ธฐ ์ํด์ ์ฐ๋ฆฌ๊ฐ ํ ๊ฒ์ function์ returnํด์ฃผ๋ ๊ฑฐ๋ค.
- ์์ฝ๋๊ฐ ๋ฐ๋ก Cleanu functuon์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ๋์ component๊ฐ desetroy๋ ๋ ๋ญ๊ฐ๋ฅผ ํ ์ ์๋๋ก ํด์ค๋ค.
- ๋ง์ฝ ๋๊ตฐ๊ฐ component๊ฐ ์์ด์ง ๋ ์ด๋ค ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ด๊ณ ์ถ์ดํ ์ ๋ ์๋ค.
- ๊ทธ๋ฌ๋ฉด ๊ทธ ์ฌ๋๋ค์ ๋ถ์ API๋ฅผ ๋ณด๋ผ ์ ์๋ค.
- ์์ด์ง๋ event listener๋ฅผ ์ง์ฐ๊ฑฐ๋, ํน์ console.log์ ๋ญ๊ฐ ๋ณด์ฌ์ค ์๋ ์๋ค.
- ์ค์ํ๊ฑด, ์ด๊ฑธ๋ก component๊ฐ ์ธ์ create๋๋์ง, ์ธ์ destroy๋๋์ง ์ ์ ์๋ค.
- useEffect๋ ์ฐ๋ฆฌ์๊ฒ ์ ํ๊ถ์ ์ ๊ณตํ๋ค.
- ๋๊ฐ๋ค ์์๊ป ๋ ์ฝ๋ค.(ํ์ดํ) ํจ์ํ , ํด๋์คํ
728x90
๋ฐ์ํ