앱 전체상태를 쉽게 관리하기 위한 라이브러리
Store는 단 하나이고 모든 앱의 상태를 여기에 보관
immutability : 상태는 오로지 읽을 수만 있고 변경하려면 모든 상태가 변경 되어야함
Pure function : 상태의 변경은 어떠한 사이드 이펙트도 만들지 않아야 함
Action은 상태의 변경을 나타내는 개념
어떠한 형태든 상관 없지만 주로 type,payload를 포함하는 JS 객체
Action을 생성하는 함수
Action을 직접 생성하는 것 보다 Action Creator를 활용하며 재사용성이 좋고 하나의 레이어를 추가할 수 있음
앱 전체의 상태를 보관하는 곳
Action에 따라 reducer에서는 새로운 상태를 만들고 Store는 그상태를 저장한다.
Store의 상태는 불변하며 액션이 발생할 때마다 새로운 객체를 만든다.
Action을 받아 새로운 State를 만든다.
Reducer에서는 상태를 변경하면 안되고, 새로운 상태를 리턴해야만 한다.
(state, action) => state의 인터페이스를 따른다.
상태 변경시 사이드 이펙트가 없어야 한다.
Action을 redux로 보내는 함수
disPatch 후에 action은 middleware를 거쳐reducer에 도달
특정 state 조각을 store로 부터 가져오는 함수
store의 state는 raw data를 저장하고 계산된 값 등을 selector로 가져오는 등의 패턴을 구사할 때 유용하다.