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 |