๐ useEffect
๐ useEffect
1 | useEffect(effectCallback); |
ํจ์ ์ปดํฌ๋ํธ์์ ๋ฐ์ ๊ฐ๋ฅํ side-effect(๋ถ์ํจ๊ณผ)๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
- ๋น๋๊ธฐ ํต์ ์์ฒญ ๋ฐ ์๋ต
- DOM ์กฐ์
- ๊ตฌ๋ /์ทจ์ ๋ฑ
๋ฆฌ์กํธ๊ฐ ํ ์ ์๋ ์์
์ ํ ๋, useEffect()
๋ฅผ ์ฌ์ฉํ๋ค.
๐ React Hook ์คํ ํ๋ฆ
๋ฆฌ์กํธ Hook์ ์คํํ๋ฆ์ ์ ์ฌ์ง๊ณผ ๊ฐ๋ค.
ํจ์ ์ปดํฌ๋ํธ์์ ํด๋์ค ์ปดํฌ๋ํธ์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด useEffect()
๊ฐ componentDidMount()
, componentDidUpdate()
, componentWillUnmount()
๋ฉ์๋๊ฐ ๋ฐ์๋๋ ์ฃผ๊ธฐ๋ฅผ ๋์ฒดํ ์ ์์ด์ผํ๋ค.
useEffect()๊ฐ ์ด๋ค์ 100% ๋์ฒดํ ์ ์์ง๋ง ๋ฌธ์ ์์ ์ ๋๋ก ํ๋ด๋ด์ด ์ฌ์ฉํ๊ณ ์๋ค.
๐ฅ ์ดํํธ ์กฐ๊ฑด ์ฒ๋ฆฌ
1. componentDidMount()
๋์ฒด ๋ฐฉ๋ฒ
1 | useEffect(() => { |
- useEffect 2๋ฒ์งธ ์ธ์๋ก ๋น ๋ฐฐ์ด์ ์ฃผ๊ฒ๋๋ฉด ์ปดํฌ๋ํธ๊ฐ ์ฒ์ mount ๋๋ ๋์ ํ๋ฒ๋ง ํธ์ถ๋๋ค.
2. componentDidUpdate()
๋์ฒด ๋ฐฉ๋ฒ
1 | useEffect( |
- useEffect 2๋ฒ์งธ ์ธ์๋ก ๋น ๋ฐฐ์ด ๋์ ๊ด๋ฆฌํ ์ํ๊ฐ ์ถ๊ฐ๋๋ฉด ํด๋น ์ํ๊ฐ ๋ณ๊ฒฝ๋ ๋์๋ง ์ดํํธ ํจ์๊ฐ ์คํ๋๋ค. ์ฆ, mount๋ ๋๋ 1๋ฒ ์คํ๋๊ณ , update ๋ ๋ ๋ง๋ค ์คํ๋๋ค.
3. componentWillUnmount()
๋์ฒด ๋ฐฉ๋ฒ
์ด๋ฒคํธ ๊ตฌ๋ /์ทจ์์ฒ๋ผ ์ปดํฌ๋ํธ๊ฐ ์ ๊ฑฐ๋ ๋ ์คํ๋์ด์ผ ํ๋ ํจ์์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ค.
1 | function Tester() { |
cleanUp
ํจ์๋ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฐฉ์ง๋ฅผ ์ํด UI์์ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ง์ ์ ์ํ๋๋ค.- Effect ํจ์๊ฐ ์คํ๋ ๋๋ง๋ค cleanUp ํจ์๊ฐ ๋จผ์ ์คํ๋์ด ์ ๋ฆฌํ๋ค.
์ด๋ componentWillUnmount()
์ฒ๋ผ ๋์ํ๋ ๊ฒ ๊ฐ์ง๋ง, ๋ฆฌ์กํธ ํ์ ํด๋์ค ์ปดํฌ๋ํธ ์๋ช
์ฃผ๊ธฐ๋๋ก ๋ก์ง์ ๊ตฌํํ์ ๋, ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ๋ฒ๊ทธ๋ฅผ ๋ง์ด ๋ฐ๊ฒฌํ์๋ค.
๊ทธ๋ฆฌํ์ฌ ๋ฆฌ์กํธ ํ์์๋ ๊ตฌ๋ ์ทจ์ ํ ๋ค์ ๊ตฌ๋ ํ๋ ๊ณผ์ ์ ํตํด ์ด๋ฅผ ๊ตฌํํ์๋ค.
1 | useEffect(() => { |