[React] Redux 기초 개념

HAPPY JM·2022년 6월 30일
0

React

목록 보기
4/5

Redux

앱 전체 상태를 쉽게 관리하기 위한 라이브러리 이다.

핵심 원칙

  1. Single soure of truth
    Store는 단 하나이며, 모든 앱의 상태는 이 곳에 보관된다.
  2. Immutability
    상태는 오로지 읽을 수만 있다. 상태를 변경하려면 모든 상태가 변경되어야 한다.
  3. Pure function
    상태의 변경은 어떠한 사이드 이펙트도 만들지 않아야 한다.

Redux를 써야하는 경우

  • 앱 전체의 상태 관리가 필요할 때
  • 복잡한 비동기 처리가 있는 상태 관리가 필요할 때
  • 앱의 상태가 복잡하고, 이를 체계적으로 관리하고 싶을 때
  • 상태 관리 패턴을 도입하여, 여러 개발자와 협업하고 싶을 때
  • logger, devtool 등을 활용하여 상태를 관리할 필요가 있을 때

Redux 관련 용어

  • Action : 상태의 변경을 나타내는 개념
    어떤 형태든지 상관없으나 주로 "type", "payload"를 포함하는 js 객체이다.
  • Action Creator : Action을 생성하는 함수
    직접 Action을 생성하는 것보다 Action Creator를 활용하면 재사용성도 좋고 하나의 레이어를 추가할 수 있다. (이게 무슨 말이지)
  • Store : 애플리케이션의 상태(state)를 객체형식으로 저장하는 장소
    action 에 따라 reducer에서는 새로운 상태를 만들어내며, Sotre는 그 상태를 저장한다.
    store의 상태는 불변하며, 매 액션이 발생할 때마다 새로운 객체가 만들어진다.
  • Reducer : Action을 받아서 새로운 State를 만드는 함수
    (state, action) => state의 인터페이스를 따른다.
    상태 변경 시 사이드 이펙트가 없어야 한다.
  • Dispatch: Action을 redux로 보내는 함수
    dispatch 후에 action은 middleware를 거쳐서 reducer에 도달하게 된다.
  • Selector : 특정 state조각을 store로부터 가져오는 함수
    store의 state는 raw data를 저장하고, 계산된 값 등을 selector로 가져오는 등의 패턴을 구사할 때 유용하다.
profile
Junior FE Engineer | work @Pangyo

0개의 댓글