본문 바로가기

React

8. useState, useRef, useContext, useReducer

useState

 

  • 단순한 하나의 상태를 관리하기에 적합.
  • const [ state, setState ] = useState( initState | initFn )
  • state가 바뀌면, state를 사용하는 컴포넌트를 리렌더함
  • useEffect와 함꼐, state에 반응하는 훅을 구축

 

useRef 

 

  • 상태가 바뀌어도 리렌더링하지 않는 상태를 정의함
  • 즉, 상태가 UI의 변경과 관계없을 때 사용 ex) setTimeout의 timerId 저장
  • uncontrolled componenet의 상태를 조작하는 등, 리렌더링을 최소화하는 상태 관리에 사용됨. 

 

useContext

 

  • 컴포넌트와 컴포넌트 간 상태를 공유할 때 사용
  • 부분적인 컴포넌트들의 상태관리, 전체 앱의 상태 관리를 모두 구현
  • Context Provider 안에서 렌더링되는 컴포넌트는, useContext를 이용해 깊이 nested 된 컴포넌트라도 context value를 가져옴
  • context value 가 바뀌면 내부 컴포넌트는 모두 리렌더링됨

 

useReducer

 

  • useState 보다 복잡한 상태를 다룰 때 사용
  • 별도의 라이브러리 없이 fulx pattern 에 기반한 상태 관리를 구현
  • const [ state, dispatch ] = useReducer( reducer, initState )
  • nested state 등 복잡한 여러 개의 상태를 한꺼번에 관리하거나. 어떤 상태에 여러 가지 처리를 적용할 때 유용
  • 상태 복잡하다면, useState에 관한 callback 을 내려주는 것보다 dispatch 를 prop 으로 내려 리렌더링을 최적화하는 것을 권장 

'React' 카테고리의 다른 글

9. import React from "react"  (0) 2022.09.13
* SPA, MPA, CSR, SSR  (0) 2022.03.07
6. Hooks  (0) 2022.03.05
5. 이벤트 처리  (0) 2022.03.05
4. State  (0) 2022.03.03