728x90
λ°μν
π‘μμ‘΄μ± λ°°μ΄ μ λ¬ μν μ λͺ¨λ μν©μμ μ€νλκΈ°μ λΆνμν μν©μμ μ€νλ κ°λ₯μ±μ΄ λννλ―λ‘ μΌλ°μ μΌλ‘ μμ‘΄μ± λ°°μ΄μ μ§μ νλ€.
λ§€κ°λ³μ / μμ‘΄μ±
μ»΄ν¬λνΈκ° DOMμ μΆκ°λλ©΄ μ€νλλ μ μ ν¨μ
μ»΄ν¬λνΈκ° DOMμ μ κ±°λλ©΄ μ€νλλ ν΄λ¦°μ ν¨μ (+μμ‘΄μ±μ΄ λ³κ²½ λμ΄ λ¦¬λ λλ§ ν λ)
μ μ ν¨μ λ΄ μ°Έμ‘°λ λͺ¨λ λ³μμ ν¨μλ‘ μμ‘΄μ± λ³κ²½μ 리λ λλ§ κ³Όμ μ κ±°μΉλ€.
useEffect(() => {
//μ
μ
ν¨μλΆ
console.log('setup');
return () => {
//ν΄λ¦°μ
ν¨μλΆ
console.log('cleanup');
}
}, [μμ‘΄μ±...]);
useEffect λ‘μ§
κΈ°λ³Έ | κΈ°λ³Έ μ»΄ν¬λνΈ μΆκ° > μ μ ν¨μ |
ν΄λ¦°μ ν¨μ μΆκ° | μ»΄ν¬λνΈ μΆκ° > μ μ ν¨μ > μ»΄ν¬λνΈ μ κ±° > ν΄λ¦°μ ν¨μ |
리λ λλ§ | μ»΄ν¬λνΈ μΆκ° > μ μ ν¨μ > μμ‘΄μ± λ³κ²½ 리λ λλ§ > ν΄λ¦°μ ν¨μ > μ μ ν¨μ |
μ£Όμ μ¬ν
- Strirct λͺ¨λλ‘ μΈν΄ useEffectκ° 2λ² νΈμΆλλ€. μ€μ μ μ μ μ μ + ν΄λ¦°μ ν¨μ μ¬μ΄ν΄ ν μ€νΈνλ κ² μ΄λ―λ‘ νμκ° μμ λμλ§ μ κ±°
- μκ°μ μΈ μμ , νλ©΄ μ§μ°μ΄ μΈμλλ κ²½μ° useLayoutEffectλ‘ λ체 μ λΈλΌμ°μ κ° νλ©΄μ 그리기 μ μ νΈμΆν μ μλ€.
μμ‘΄μ±μ λ°λ₯Έ useEffect λ‘μ§
π‘μμ‘΄μ± λ°°μ΄ μ λ¬ μν μ λͺ¨λ μν©μμ μ€νλκΈ°μ λΆνμν μν©μμ μ€νλ κ°λ₯μ±μ΄ λννλ―λ‘ μΌλ°μ μΌλ‘ μμ‘΄μ± λ°°μ΄μ μ§μ νλ€.
μμ‘΄μ± μ 무 | μ€ν μν© |
μμ‘΄μ± λ°°μ΄ μ λ¬ | μ΄κΈ° λ λλ§, μμ‘΄μ± λ³κ²½μΌλ‘ μΈν 리λ λλ§ |
λΉ μμ‘΄μ± λ°°μ΄ μ λ¬ | μ΄κΈ° λ λλ§ |
μμ‘΄μ± λ°°μ΄ μ λ¬ μν¨. | λͺ¨λ λ λλ§(+리 λ λλ§) |
728x90
λ°μν
'React' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[vite] Rollup failed to resolve import react-icons (0) | 2024.02.27 |
---|---|
Yarn StoryBook μ€ν Error #22431 (0) | 2024.01.29 |
React Javascript WebSocket - Server ν¬ν¨ (0) | 2023.10.31 |
React λΉλ μ©λ μ΅μ ν - Vite rollupOptions manualChunks (0) | 2023.09.07 |
Dynamic Import / Lazy Loading - μ½λ μ€ν리ν [Code Splitting] (0) | 2023.09.07 |