[React] useReducer

양선희·2021년 2월 8일

리액트

목록 보기
7/16
post-thumbnail

👉 useReducer 개념

useReducer란 useState 보다 더 다양한 컴포넌트 상황에서 더 다양한 상태를 다루고 싶을 때 사용하는 훅
현재 상태, 그리고 업데이트를 위해 정보를 담은 액션(Action)의 값을 전달 받아 새로운 상태를 반환하는 함수이다.

1) useReducer 상태관리

  • 상태를 업데이트를 하는 방법중 하나
  • usestate와 다른 방법

2) useReducer 특징

  • 컴포넌트의 상태 업데이트 로직을 컴포넌트에서 분리할 수 있다.
  • 업데이트 로직을 컴포넌트 바깥에 작성 할 수 있다.
  • 다른 파일에 작성한 후 불러와서 사용할 수 있다.

3) useReduce & useState 언제 사용하는가

  • 컴포넌트에서 관리하는 값이 딱 하나고, 그 값이 단순한 숫자, 문자열 또는 boolean 값이라면 확실히 useState 로 관리하는게 편하다.
  • 만약에 컴포넌트에서 관리하는 값이 여러개가 되어서 상태의 구조가 복잡해진다면 useReducer로 관리하는 것이 편하다.

👉 useReducer 작성법

📝 useReducer선언

const [state, dispatch] = useReducer(reducer, initialState);

state는 현재 상태를 가리키며 dispatch는 액션을 발생시키는 함수이다
useReducer는 첫번째 인자로 reducer 함수를 두번째 인자로 reducer의 기본값을 넣어준다

📝 state 업데이트할 reducer 로직 작성

function reducer(state, action){
  switch(action.type){
    case '1':
      return {};
    case '2':
      return {};
  }
}
  • reducer함수의 첫번째 인자인 state는 업데이트 이전의 state이고 useReduer에서 선언 했던 상태를 의미한다. 즉, 선언한 상태 값을 가지고 업데이트가 이루어진다.
  • action은 dispatch함수가 발생시키는 action이다. 이 action을 통해서 어떤식으로 state를 업데이트할지 정할수 있다.
  • reducer라는 함수 이름은 useReducer선언할 때 reducer 함수와 같아야한다
  • action은 dispatcher에서 type의 값을 의미한다.

==> 정리

useReducer를 사용할 때의 가장 큰 장점으로는 컴포넌트 업데이트 로직을 컴포넌트 밖에 빼서 모듈화 할 수 있다는데 있다

0개의 댓글