프론트엔드/React

useState() vs useReducer()

bread-gee 2023. 12. 13. 19:12

📌 useState()

  • state 관리 도구
  • 단순 상태 업데이트, 복합적이지 않은 상태, 연결되지 않는 상태
  • 간단한 컴포넌트나 단일 상태 변수를 다루기에 적합하다.
  • 개별적인 상태를 다루기에 적합하고, 각 상태 변수는 독립적으로 동작한다.
  • 단순한 상태 업데이트와 컴포넌트 연결이 적은 경우에 유용하다.

 

📌 useReducer()

  • state 가공
  • 최신 state 스냅샷, 복잡한 로직
  • 주로 복잡한 상태 로직이나 여러 상태 간의 관계가 있는 경우에 유용하다.
  • 복잡한 상태 업데이트 로직을 포함하거나 여러 상태를 동시에 업데이트할 때 적합하다.
  • 연관된 상태 조각들로 구성된 상태 관련 데이터를 다루는 경우 사용한다.
    ex) 폼 인풋 state
  • state 하나를 변경하는 여러 액션이 있는 경우(데이터 상태에 따라 분기 처리 필요) 사용한다.
    ex) 유효성 검사
  • 기존의 상태를 직접 변경하지 않고 새로운 상태를 반환한다.
  • state action 이용하여 새로운 상태를 계산하고 반환한다.

 

🔥useEffect와 useState를 이용해 useReducer 작업을 대신 할 수 있다. 그러나 useReducer 간단할 것 같다.