리덕스를 사용하면 State를 공유하고자 할때 부-모 관계가 아니여도 되고, 중간에 의미없이 컴포넌트를 거치지 않아도 된다. 그리고 자식 컴포넌트에서 만든 State를 부모 컴포넌트에서도 사용할 수 있게 된다.
중앙 State관리소에서 State를 생성하고, 만약 어떤 컴포넌트에서 State가 필요하다면 컴포넌트가 어디에 위치하고 있든 상관없이 State를 불러와서 사용 할 수 있게 된다. 이렇게 특정 컴포넌트에 종속되어 있는 것이 아니라 “중앙 state 관리소”에서 생성된 State를 Global state라고 하는데 이러한 값들을 관리하는 것을 전역 상태 관리 라고 한다.
즉 Redux란 전역 상태관리 라이브러리이며, 우리가 위에서 말한 “중앙 state 관리소”를 사용할 수 있게 도와주는 패키지(라이브러리) 이다.
Store - Store가 주입되어 있는 컴포넌트들에서 접근 가능한 상태 저장소 (보통은 전역에서 접근)
State - 상태
Reducer - State를 Action의 내용에 따라 변경해 주는 함수 → - State 를 작업지시서의 내용에 따라서 변경하는 공장
Action - 작업 지시서. 보통 객체. 이 객체 안에는 1가지는 필수로 들어있고, 1가지는 필요에 따라 들어있다.
- 필수로 들어있는 것 → 액션의 타입
- 필요에 따라 들어 있는 것 → 페이로드(payload): 작업 지시서와 함께 보내는 자료? 준비물? stuff.
ex) 작업지시서의 type이 ‘N만큼_숫자증가’ 이면, 당연히 N이 얼마만큼인지도 함께 알려주어야 한다
Action Creator - 액션(작업지시서)를 만들어 주는 함수. 일반적으로 하나의 액션에는 하나의
액션 크리에이터를 대응해서 만들어 준다.
Dispatch - 액션을 리듀서로 보내는 행위 또는 함수이다. → 작업지시서를 공장으로 보내주는 것.