Redux
상태 관리 라이브러리로 Component별 props/state를 바꿔 주는 복잡한 관계를 redux 하나로 외부에서 state들을 공용으로 관리하여 사용할 수 있다.
Store, Action, Reducer
Store : 상태가 관리되는 오직 하나의 공간
Action : 앱에서 스토어에 운반할 데이터
Reducer : Action을 Store에 바로 전달하지 않고 Reduver에 전달, Reducer가 Action을 보고 Store의 상태 업데이트
Redux의 원칙
1. Single source of truth
- 동일한 데이터는 항상 같은 곳에서 가져온다.
- 즉, 스토어라는 하나뿐인 데이터 공간이 있다는 의미
2. State is read-only
- 리액트에서는 setState 메소드를 활용해야하면 상태 변경이 가능하다.
- 리덕스에서도 Action 객체를 통해서만 상태를 변경할 수 있다.
3. Changes are made with pure functions
- 변경은 순수함수로만 가능하다.
- Reducer와 연관되는 개념
Redux 장점 및 사용 권장
Redux 장점 |
1. 순수 함수를 사용해 상태를 예측 가능하게 만듦 |
2. 유지보수 용이 |
3. redux dev tool이 있어 디버깅에 유리 |
4. 비동기를 지원하는 Redux Saga, Redux Thunk 등 다양한 미들웨어 존재 |
Redux 사용 권장 상황
- 전역 상태가 필요할 때
- 상태들이 자주 업데이트될 때
- 상태를 업데이트하는 로직이 복잡할 때
- 앱이 크고 많은 사람들에 의해 코드가 관리될 때
- 상태가 업데이트되는 시점을 관찰할 필요가 있을 때
참고
[리액트] Redux와 사용법. React 상태관리 라이브러리 Redux의 설명과 사용법 | by HE OH | Medium
[React/Redux] Redux 사용법 (1) -State/Action/Reducer/Store (tistory.com)