Redux란?
: 상태 관리 시스템
: A state management system for cross-component or app-wide state
- 데이터를 다수의 컴포넌트나 앱 전체에서 관리하도록 돕는다.
우리는 useState나 useReducer과 같은 리액트 상태관리 훅을 사용해서 어떤 데이터를 변경했다고 리액트에 알린다. => react는 ui를 업데이트한다.
상태 3가지
1) Local State
- 하나의 컴포넌트에 속하는 상태
- 예시) 사용자가 토글을 open해서 show more을 원할 때 토글의 상태값을 바꿔준다.
=> useState()나 useReducer() 를 사용한다.
2) Cross-Component State
- 여러개의 컴포넌트에 영향을 미치는 상태
- 예시) 모달을 열고 닫는 상태
=> prop chains나 prop drilling 이 요구된다.
3) App-Wide State
- 전체 앱에 영향을 미치는 상태
- 예시) 사용자 인증상태
=> prop chains나 prop drilling 이 요구된다.
React Context
- 리액트의 내장 기능
- 위의 문제들을 해결할 수 있다.
- 크로스 컴포넌트와 앱 와이드 상태 관리를 단순화할 수 있다.
=> 리덕스도 같은 문제를 해결해 줄 수 있다.
=> 왜 리덕스가 또 필요한가?