Zoeeey
Stack flows in you
Zoeeey
  • 분류 전체보기 (155)
    • 💡 UXUI (4)
      • UXUI (2)
      • UI (2)
      • UX (0)
    • 🟨 JavaScript (66)
      • 개념 (42)
      • 정리 (2)
      • 문제풀기 (프로그래머스, 코딩애플) (15)
      • 응용하여 자동화or문제해결하기 (2)
      • 기타 (5)
    • ⚛️ React (49)
      • 개념 (27)
      • 개념(Redux) (3)
      • 정리 (4)
      • 문제풀기 (코딩애플: React) (15)
    • 📘 TypeScript (10)
      • 개념 (8)
      • 문제풀기 (코딩애플) (2)
    • 🌐 HTML,CSS (18)
      • 실무에서 자주 발생한 오류들 (10)
      • 뒤늦게 알아서 뼈아픈 유용한 CSS (6)
      • 기타 자주 쓰는 CSS (2)
    • 💻 CS (8)
      • CS (5)
      • 정규표현식 (2)
      • Git,Github (1)

태그

  • CSS
  • axios
  • class
  • object
  • JavaScript
  • state
  • react
  • Props
  • TypeScript
  • array
  • 코딩애플
  • CS
  • json
  • 삼항연산자
  • UXUI
  • Ajax
  • 프로그래머스
  • redux
  • 오류
  • useEffect
전체 방문자
오늘
어제
hELLO · Designed By 정상우.
Zoeeey

Stack flows in you

⚛️ React/정리

React 정리 (1) : useEffect, clean up (조건 별 실행순서), automatic batching

2023. 6. 12. 23:15

useEffect와 cleanup함수의 조건 별 실행순서

의존성 배열 값이 있을 때

useEffect(()=>{ 
  //함수 A
  return ()=>{
    //함수 B
  }
}, [변수나state])
  • Mount(초기 마운트) 시나리오:
    컴포넌트가 처음으로 마운트되면 함수 A가 실행
  • Update(업데이트) 시나리오:
    컴포넌트가 업데이트되고 의존성 배열에 포함된 변수나 state가 변경되면, 먼저 함수 B가 실행 후 함수 A가 실행
  • Unmount(마운트 해제) 시나리오:
    컴포넌트가 마운트 해제되면 함수 B가 실행

의존성 배열 값이 비었을 때

useEffect(()=>{ 
  //함수 A
  return ()=>{
    //함수 B
  }
}, [])
  • Mount(초기 마운트) 시나리오:
    컴포넌트가 처음으로 마운트되면 함수 A가 실행
  • Update(업데이트) 시나리오:
    실행되지 않음
  • Unmount(마운트 해제) 시나리오:
    컴포넌트가 마운트 해제되면 함수 B가 실행

Automatic Batching

리액트 18버전 이상부터 state 변경함수들이 연달아서 여러개 처리되어야한다면 매번 랜더링되는 것이 아니라, state 변경함수를 다 처리하고 마지막에 한 번만 재렌더링된다. 

아래의 경우 마지막에 일어나는 red만 일어나게 됨.

useEffect(()=>{ 
  setColor('red')
  return ()=>{
    setColor('blue')
  }
}, [변수나state])

그럼 어떻게 할까?

시간차를 두면 된다.

useEffect(()=>{ 
  setTimeout(()=>{ setColor('red') }, 100)
  return ()=>{
    setColor('blue')
  }
}, [변수나state])

 


출처 : React document, 코딩애플 https://codingapple.com/

저작자표시 비영리 동일조건 (새창열림)

'⚛️ React > 정리' 카테고리의 다른 글

Redux 정리 (3) : dispatch, useSelector, 컴포넌트가 상태를 업데이트하는 과정 총정리  (0) 2023.07.29
Redux 정리 (2) : actions (액션생성자함수, type, payload)  (0) 2023.07.29
Redux 정리 (1) : 기본 파일 구조 및 reducers (rootReducer, initialState, switch문, Store)  (0) 2023.07.29
    '⚛️ React/정리' 카테고리의 다른 글
    • Redux 정리 (3) : dispatch, useSelector, 컴포넌트가 상태를 업데이트하는 과정 총정리
    • Redux 정리 (2) : actions (액션생성자함수, type, payload)
    • Redux 정리 (1) : 기본 파일 구조 및 reducers (rootReducer, initialState, switch문, Store)
    Zoeeey
    Zoeeey
    길게 생각하고 짧게 그리기

    티스토리툴바