250x250
λ°˜μ‘ν˜•
arkhyeon
arkhyeon
arkhyeon
전체 방문자
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (88)
    • Spring (5)
    • Java (4)
    • React (25)
      • TypeScript (6)
      • JavaScript (1)
      • Jest (9)
    • NEXT (8)
    • SQL (1)
    • React native (1)
    • CSS (3)
    • Web (1)
    • Git (3)
    • ETC (6)
    • 빅데이터DB (8)
    • Docker (4)
    • Tool (1)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

νƒœκ·Έ

  • react19
  • javasciprt websocket
  • HIVE
  • kudu
  • websocket server
  • react
  • react typescript
  • Spring WebSocket
  • jest
  • react usetransition
  • docker tomcat
  • node WebSocket
  • react jest
  • websocket
  • react loading
  • WSS
  • react websocket
  • javascript wss
  • react spring websocket
  • usetransition

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
arkhyeon

arkhyeon

React

useEffect no dependency

2023. 11. 14. 13:13
728x90
λ°˜μ‘ν˜•
πŸ’‘μ˜μ‘΄μ„± λ°°μ—΄ 전달 μ•ˆν•  μ‹œ λͺ¨λ“  μƒν™©μ—μ„œ μ‹€ν–‰λ˜κΈ°μ— λΆˆν•„μš”ν•œ μƒν™©μ—μ„œ 싀행될 κ°€λŠ₯성이 λ†ν›„ν•˜λ―€λ‘œ 일반적으둜 μ˜μ‘΄μ„± 배열을 μ§€μ •ν•œλ‹€.

λ§€κ°œλ³€μˆ˜ / μ˜μ‘΄μ„±

μ»΄ν¬λ„ŒνŠΈκ°€ DOM에 μΆ”κ°€λ˜λ©΄ μ‹€ν–‰λ˜λŠ” μ…‹μ—… ν•¨μˆ˜

μ»΄ν¬λ„ŒνŠΈκ°€ DOM에 제거되면 μ‹€ν–‰λ˜λŠ” 클린업 ν•¨μˆ˜ (+μ˜μ‘΄μ„±μ΄ λ³€κ²½ λ˜μ–΄ λ¦¬λ Œλ”λ§ ν•  λ•Œ)

μ…‹μ—… ν•¨μˆ˜ λ‚΄ 참쑰된 λͺ¨λ“  λ³€μˆ˜μ™€ ν•¨μˆ˜λ‘œ μ˜μ‘΄μ„± λ³€κ²½μ‹œ λ¦¬λ Œλ”λ§ 과정을 κ±°μΉœλ‹€.

useEffect(() => {
    //μ…‹μ—… ν•¨μˆ˜λΆ€
    console.log('setup');
    
    return () => {
      //클린업 ν•¨μˆ˜λΆ€
      console.log('cleanup');
    }
  }, [μ˜μ‘΄μ„±...]);

useEffect 둜직

κΈ°λ³Έ κΈ°λ³Έ μ»΄ν¬λ„ŒνŠΈ μΆ”κ°€ > μ…‹μ—… ν•¨μˆ˜
클린업 ν•¨μˆ˜ μΆ”κ°€ μ»΄ν¬λ„ŒνŠΈ μΆ”κ°€ > μ…‹μ—… ν•¨μˆ˜ > μ»΄ν¬λ„ŒνŠΈ 제거 > 클린업 ν•¨μˆ˜
λ¦¬λ Œλ”λ§ μ»΄ν¬λ„ŒνŠΈ μΆ”κ°€ > μ…‹μ—… ν•¨μˆ˜ > μ˜μ‘΄μ„± λ³€κ²½ λ¦¬λ Œλ”λ§ > 클린업 ν•¨μˆ˜ > μ…‹μ—… ν•¨μˆ˜

주의 사항

  1. Strirct λͺ¨λ“œλ‘œ 인해 useEffectκ°€ 2번 ν˜ΈμΆœλœλ‹€. μ‹€μ œ μ…‹μ—… μ „ μ…‹μ—… + 클린업 ν•¨μˆ˜ 사이클 ν…ŒμŠ€νŠΈν•˜λŠ” 것 μ΄λ―€λ‘œ ν•„μš”κ°€ 없을 λ•Œμ—λ§Œ 제거
  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
    'React' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [vite] Rollup failed to resolve import react-icons
    • Yarn StoryBook μ‹€ν–‰ Error #22431
    • React Javascript WebSocket - Server 포함
    • React λΉŒλ“œ μš©λŸ‰ μ΅œμ ν™” - Vite rollupOptions manualChunks
    arkhyeon
    arkhyeon

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”