애플리케이션의 상태를 관리하기 위한 견고하고 안정적인 솔루션을 제공한다.
- 자식 컴포넌트 간 직접적인 데이터 전달이 불가능하다
- 자식 컴포넌트가 많아지고 이들 간 데이터 전달이 필요하다면 부모로부터 props 전달이 필요하다
- 프로젝트가 커지면서 props Driling 이슈가 발생한다.
- 프로젝트가 커지면서 코드가 복잡하고, 유지 보수의 어려움이 증가한다.
애플리케이션의 상태를 관리하고, getState(), dispatch(), subscript 같은 메서드를제공한다.
액션은 애플리케이션에서 상태 변경을 설명하는 정보를 store 로 보내어 변화를 이끌어낸다.
const inCreaseCountAction = { type: "INCREASE_COUNT"}
애플리케이션 상태를 교체하는 함수 이전상태를 새로운 상태로 교체 한다.
리듀서는 상태와 액션을 전달 받아 새로운 상태 로 교체 반환한다.
주어진 상태를 수정하는 것이 아니라, 새로운 상태로 교체 하는 것이 중요 하다.
리듀서는 '순수 함수 ' 여야한다.const reducer = (prev = init, action ){ switch(aciton.type){ case INCREASE_COUNT: return prev + 1 case DECREASE_COUNT : return prev - 1 default: return prev } }
참고
https://hanamon.kr/redux%EB%9E%80-%EB%A6%AC%EB%8D%95%EC%8A%A4-%EC%83%81%ED%83%9C-%EA%B4%80%EB%A6%AC-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/
https://yamoo9.github.io/react-master/lecture/rd-redux.html