ํฐ์คํ ๋ฆฌ ๋ทฐ
useEffect
๐useEffect์ ํน์ง
- ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ์ดํ๋ง๋ค ํน์ ์์ ์ ์ํํ๋๋ก ํ๋ hook (์ปดํฌ๋ํธ๊ฐ ๋ํ๋ ๋, ์ฌ๋ผ์ง ๋)
- useEffect ์์ฑ ํ, Import ํ์
- state๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ฆฌ-๋ ๋๋ง์ด ์ผ์ด๋์ useEffect๊ฐ ๊ณ์ ์คํ๋จ
=> ์์กด์ฑ ๋ฐฐ์ด๋ก ๋ง์ ์ ์์
๐์์กด์ฑ ๋ฐฐ์ด
- ์ด ๋ฐฐ์ด์ ๊ฐ์ ๋ฃ์ผ๋ฉด ๊ทธ ๊ฐ์ด ๋ฐ๋ ๋๋ง useEffect๋ฅผ ์คํ์ํด
- Trigger : useEffect์ ๋์์ ์ด๋์ด๋ด๋ ์ด๋ ํ ๋ณ์ (๋ฐฐ์ด์ ๋ค์ด๊ฐ๋ ๊ฐ)
- ์์กด์ฑ ๋ฐฐ์ด์ด ๋น ๋ฐฐ์ด์ผ ๊ฒฝ์ฐ : ์ต์ด ๋ ๋๋ง ์ดํ ๋ฑ ํ ๋ฒ๋ง ์คํ, ๊ทธ ์ดํ์๋ ์ด๋ค ์ผ์ด ์ผ์ด๋๋ ์คํ X
๐clean up
- useEffect์ return ๋ฌธ์ ๋ค์ด๊ฐ๋ ํจ์
- ๋ฆฌ์์ค ์ ๋ฆฌ, ๋ถํ์ํ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ
๐์ปดํฌ๋ํธ ๋ผ์ดํ์ฌ์ดํด: Mount(์์ฑ) / Update(์ ๋ฐ์ดํธ) / Unmount(์๋ฉธ)

useRef
๐ํน์ง
- state๊ฐ ๋ณ๊ฒฝ๋์ด ๋ ๋๋ง์ด ์ผ์ด๋๋ ๊ฒ๊ณผ ์๊ด์์ด ์ด๋ค ๊ฐ์ ๊ณ์ํด์ ์ ์ฅํ ๋ ์ฌ์ฉ
- ๊ฐ์ ์ ์งํจ => ์ ์ฅ๊ณต๊ฐ์ ์ญํ (useState์์ ์ฐจ์ด : ๋ ๋๋ง๊ณผ ์ฐ๊ด์ด ์์)
- useRef๋ก ์ ์ธ๋ ๊ฐ์ DOM ์์์ ์ ๊ทผํ๋ ์ญํ
๐์ฌ์ฉ ๋ฐฉ๋ฒ
import { useRef } from "react";
function App() {
const ref = useRef("์ด๊ธฐ๊ฐ");
console.log("ref", ref);
};
์ฝ์์ ์ฐํ๋ ๊ฐ:

- ‘current’๋ฅผ ๊ฐ๊ณ ์๋ ๊ฐ์ฒด
- ๋ณ๊ฒฝ ๊ฐ๋ฅ : ref.current = ‘๋ฐ๊พผ ๊ฐ’ (current ์ ์ ๊ทผํ์ฌ ๋ฐ๊พธ๊ธฐ)
function App() {
const ref = useRef("์ด๊ธฐ๊ฐ");
console.log("ref 1", ref);
ref.current = "๋ฐ๊พผ ๊ฐ";
console.log("ref 1", ref);
};

์ด๋ ๊ฒ ์ค์ ๋ ref ๊ฐ์ ์ปดํฌ๋ํธ๊ฐ ๊ณ์ํด์ ๋ ๋๋ง ๋์ด๋ unmount ์ ๊น์ง ๊ฐ์ ์ ์ง!
๐์์
- ์ ์ฅ๊ณต๊ฐ
- state๋ ๋ฆฌ๋ ๋๋ง์ด ๊ผญ ํ์ํ ๊ฐ์ ๋ค๋ฃฐ ๋ ์ฐ๋ฉด ๋๋ค.
- ref๋ ๋ฆฌ๋ ๋๋ง์ ๋ฐ์์ํค์ง ์๋ ๊ฐ์ ์ ์ฅํ ๋ ์ฌ์ฉํ๋ค.
- ref๋ก ๋ณ๊ฒฝ๋ ์ฌํญ์ ๋์ ๋ณด์ด์ง ์์ง๋ง ์ ์ฅ๋๋ ์ค / state๋ก ๋ฆฌ๋ ๋๋ง์ ํ ๋ ๊ทธ ๊ฐ์ด ํ ๋ฒ์ ๋ฐ์๋จ
- DOM
- ์ต์ด ๋ ๋๋ง ์ ์ธํ์ ํฌ์ปค์ค ๋๊ธฐ(useEffct์ ํจ๊ฒ ์ฌ์ฉ)
'Language > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [โ๏ธ] memoization (0) | 2025.01.30 |
|---|---|
| [โ๏ธ] useContext (0) | 2025.01.30 |
| [โ๏ธ] useState : ํจ์ํ ์ ๋ฐ์ดํธ (0) | 2025.01.30 |
| [โ๏ธ] CSS in JS(Styled-components, GlobalStyles (1) | 2025.01.27 |
| [โ๏ธ] useState() ๋ฅผ ์ ์ธ๊น? (0) | 2025.01.22 |