리덕스(Redux) 는 Javascript app을 위한 예측가능한(predictable) state container이다. 리액트 뿐만 아니라 Augular, jQuery, vanilla JavaScript 등 다양한 framework와 작동되게 설계되었다. 즉, 리액트만을 위한 Library는 아니다.
프로젝트의 규모가 커질수록, props로 data를 전달하기 위해 이렇게 필요없는 data의 흐름이 생기게 된다. 또한, 만약 props가 전달이 안될 경우, 중간에 끼인 모든 Component에서 하나하나 문제점을 찾아봐야 한다
Prop Drilling 문제를 해결하기 위해 등장!
Context API
Redux
1. Action 발생
2. Reducer 호출
3. Reducer를 통해 Store에 상태를 저장
4. Store가 변경되면 View가 리랜더링