0. about UseEffect
UseEffect ํจ์
๋ฆฌ์กํธ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋๋ง๋ค ํน์ ์์ ์ ์คํํ ์ ์๋๋ก ํ๋ Hook
component์ mount ์ํ๊ฐ ๋ฐ๋ ๋, ํน์ ๋ด์ฉ์ด update ๋์์ ๋, ํน์ ์์ ์ ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ค๋ค.
์ฌ์ฉ๋ฒ ์
import React, {useEffect} from 'react'
์ด๋ ๊ฒ ํจ์๋ฅผ ๋ถ๋ฌ์์
useEffect(()=>{ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค ํ๊ณ ์ถ์ ์ผ },[๊ธฐ์ค ๊ฐ])
์ด๋ ๊ฒ ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค.
์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์ ๊ฐ์ฅ ์ฒ์ ๋ ๋๋ง ๋ ๋ ๋ฑ ํ ๋ฒ๋ง ์คํํ๊ณ ์ถ์ ๋์๋
๊ธฐ์ค๊ฐ์ด ๋ค์ด๊ฐ๋ [] ๋ถ๋ถ์ ๊ทธ๋๋ก ๋น ๋ฐฐ์ด๋ก ๋๋ฉด ๋๋ค.
1. ๋ฌธ์ ์ํฉ
useEffect(()=>{},[])
์๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ์ด๋ก ์ ๋ฑ! ํ๋ฒ๋ง ๋ถ๋ฌ์์ผ ํ๋๋ฐ..
์ด๋ ๊ฒ ๋๋ฒ ๋ถ๋ฌ์์ง๋ค.
๊ตณ์ด ์๊ด์ ์๊ธด ํ์ง๋ง ๊ถ๊ธํ๊ธฐ๋ ํ๊ณ ์ฝ์์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฃ์ด์ ํ์ธํ๋ฉด ์ฃผ๋ฃจ๋ฃจ๋ฃจ๋ฃฉ ์์ฒญ ๋ญ๊ฐ ๋ง์ ๊ฑฐ ์ฒ๋ผ ์ฌ๋ฌ๋ฒ ๋์ค๋๊น.. ๋ ๊ถ๊ธํด์ง๊ธฐ ์์ํ๋ค.
2. ๊ด๋ จ ์ด๋ก
์๋ฉด ๋๋ฐ ๊ฐ๋จํจ
REACT18 ์์๋ ํ์ด์ง ์ด๋ ์ดํ ๋ค์ ๋์์์ ๋ ์ฑ์ด ๋ง๊ฐ์ง๋ ๋ถ๋ถ์ด ์๋์ง๋ฅผ ํ์ธํ๊ธฐ ์ํด์ ๊ฐ๋ฐ๋ชจ๋(strict mode) ์์ ํ ์ปดํฌ๋ํธ๋ฅผ 2๋ฒ ๋ ๋๋ง ํ๋ค๊ณ ํ๋ค.
ํ ๋ง๋๋ก ๋ ๋๋ง์ ์งํํ๋ฉด
connecting → disconnecting → connecting ์ ๊ณผ์ ์ ๊ฑฐ์น๋ค๋ ๋ง์ด๋ค.
ํ์ธํด๋ณด๋๋ก ํ์.
์ด์์์ผ๋ฉด ์ด์์๋ค๊ณ ๋งํด๋ฌ๋ผ๊ณ ํ๊ณ , ์ฃฝ์์ผ๋ฉด ์ฃฝ์๋ค๊ณ ๋งํด๋ฌ๋ผ๊ณ ์์ฒญํ๋ค.
์ง์ง connecting → disconnecting → connecting ์ ๊ณผ์ ์ ๊ฑฐ์น๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
3. ํด๊ฒฐ ๋ฐฉ๋ฒ
๊ทธ๋ผ ๋น์ฐ app.js ๋ฅผ ๊ฐ์ธ๊ณ ์๋ strictMode ๋ฅผ ๋ผ์ฃผ๋ฉด ๋๋๊ฑฐ ์๋๊ฐ...?
๋ง๋ค.
ํ์ง๋ง React.StrictMode ๋ฅผ ์ ๊ฑฐํด๋ฒ๋ฆฌ๋ฉด 2๋ฒ ๋ ๋๋งํ๋ ๊ณผ์ ์ ์ผ์ด๋์ง ์๊ฒ ์ง๋ง,
๊ฐ๋ฐ ๋จ๊ณ์์ ์ผ์ด๋ ์ ์๋ ์ค๋ฅ๋ฅผ React์์ ์ก์์ฃผ์ง ๋ชปํ๋ฏ๋ก ๊ฐ๋ฐ์ ๋น์ฐ StrictMode ๋ด์์ ๊ฐ๋ฐํ๋ ๊ฒ ๋ง๋ค..
๋ฐฐํฌํ๊ฒ ๋๋ฉด StrictMode๋ ํด์ ๋๊ธฐ ๋๋ฌธ์ ์๊ด์์ ๊ฒ ๊ฐ๊ธด ํ์ง๋ง
๊ทธ๋๋ ์ฐ์ฐํ์ํ์
๋๋ฒ ๋ ๋๋ง ๋๋ ๊ฒ ๋ฌธ์ ๊ฐ ์๋๋ผ...
๊ฒฐ๋ก ์ ์ผ๋ก๋ 2๋ฒ ๋ ๋๋งrerendering ๋๋๋ผ๋ ์ฌ์ฉ์๋ ์ด๊ฑธ ๋ชจ๋ฅด๋ฉด ์๊ด์ด ์๋๊ฑฐ๋ค..
๊ทธ ๋ฐฉ๋ฒ์ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ Clean-Up ํจ์ ๋ฅผ ๊ผญ ์์ฑํด์ฃผ๋ฉด ๋๋จ๋ค.
cleanup ํจ์ ๊ณต์ Document
useEffect() ํจ์์ return ๊ฐ์ผ๋ก ์ฝ๋ฐฑ ํจ์๋ฅผ ์ค์ ํ๋ฉด,
component ๊ฐ unmount ๋๋ update ๋๊ธฐ ์ง์ ์ ์ด ํจ์๊ฐ ์คํ๋๋ค.
๊ตฌ๊ตฌ์ ์ ์ด์ผ๊ธฐ๋ ๋ง์ง๋ง ํฌ๊ฒ ์ด๋ ค์ด ๊ฒ์ ์๋๊ณ
useEffect(()=>{
๊ฐ์ด ๋ง์ดํธ ํน์ ๋ณ๊ฒฝ ๋ ๋ ๋ง๋ค ํ๊ณ ์ถ์ ์ผ
return()=>{
๊ฐ์ด unmount ๋ ๋ ํ๊ณ ์ถ์ ์ผ
};
},[๊ธฐ์ค ๊ฐ])
์ด๋ ๊ฒ ์จ์ฃผ๋ฉด ๋๋ ๊ฑฐ๋ค.
๊ฐ๋ฐ ๋ชจ๋์์๋ effect → cleanup → effect ์ ์์๋ก ์ปดํฌ๋ํธ๋ฅผ ์คํํ๊ธฐ ๋๋ฌธ์
cleanup ํจ์๊ฐ ํ์ํ ๊ณณ์์๋ ๊ผญ ์ฑ๊ธฐ๋๋ก ํด๋ณด์.