Skip to content

Latest commit

 

History

History
72 lines (51 loc) · 1.97 KB

README.md

File metadata and controls

72 lines (51 loc) · 1.97 KB

리덕스

  • 리엑트에서 가장 많이 사용하는 리액트 상태 관리 라이브러리
  • Context API로도 가능하지만 프로젝트 규모에 따라서 결정하는 것이 좋음
  • 개발자 도구를 지원 한다는 장점과 미들웨어를 통해서 비동기 처리를 쉽게 가능하다는 장점 존재

액션

  • 상태에 변화가 필요하면 액션이 발생
  • 하나의 객체로 표현됨
  • 일반 객체
    {
      type: "TOGGLE_VALUE";
    }

액션 객체는 type 필드를 반드시 가지고 있어야함

이를 액션 이름이라고 생각하면 됨

액션 생성 함수

  • action creator
  • 액션 객체를 만들어 주는 함수
function addTodo(data) {
  return {
    type: "ADD_TODO",
    data,
  };
}

변화를 나타내야 할 때 마다 액션 객체를 생성해야함

하지만 이 과정에서 실수로 정보를 놓칠 수 있기 때문에
함수로 만들어서 관리한다!!!

리듀서

  • reducer
  • 변화를 일으키는 함수
  • 액션을 만들어서 발생 -> 리듀서가 현재 상태와 전달받은 액션 객체를 파라미터로 받아옴
    • 현재 상태, 액션 객체를 참고하여 새로운 상태를 만들어서 반환해줌

스토어

  • reducer

  • 프로젝트에 리덕스를 적용하기 위해 생성

  • 한 프로젝트에 스토어는 하나만 존재 가능!!!

  • 스토어

    • 현재 애플리케이션 상태, 리듀서 들어있음
    • 내장 함수 포함

디스패치

  • dispatch
  • 스토어의 내장 함수 중 하나
  • 액션을 발생시키는 것 이라고 이해

dispatch(action)과 같은 형태로 액션 객체를 파라미터로 넣어서 호출

이 함수가 호출되면 스토어는 리듀서 함수를 실행시켜 새로운 상태를 만들어줌

구독

  • subscribe
  • 스토어의 내장 함수 중 하나
  • 리스터 함수를 파라미터로 넣어서 호출 시 액션이 dispatch 되어서 상태가 업데이트 할 때 마다 호출