-동일한 데이터는 항상 같은 곳에서 가지고 온다.
-즉, 스토어라는 하나뿐인 데이터 공간이 있다는 의미이다.
-리액트에서는 setState 메서드를 활용해야만 상태 변경이 가능하다.
-리덕스에서도 액션이라는 객체를 통해서만 상태를 변경할 수 있다.
-변경은 순수함수로만 가능하다.
-리듀서와 연관되는 개념이다.
-Store(스토어) - Action(액션) - Reducer(리듀서)
Store
-Store는 상태가 관리되는 오직 하나의 공간이다.
-컴포넌트와는 별개로 스토어라는 공간이 있어서 그 스토어 안에 앱에서 필요한 상태를 담는다.
-컴포넌트에서 상태 정보가 필요할 때 스토어에 접근한다.
Action
-Action은 앱에서 스토어에 운반할 데이터를 말한다.
-Action은 자바스크립트 객체 형식으로 되어있다.
Reducer
-Action을 Store에 바로 전달하는 것이 아니다.
-Action을 Reducer에 전달해야 한다.
-Reducer가 주문을 보고 Store의 상태를 업데이트하는 것이다.
-Action을 Reducer에 전달하기 위해서는 dispatch()메서드를 사용해야 한다.
Redux에서 위 개념을 구현하기 위해서 mapStateToProps()와 Redux hooks(useSelector, useDispatch)를 이용할 수 있다.
Redux의 장점
-상태를 예측 가능하게 만든다.
-유지보수
-디버깅
-테스트