- 상태 관리 라이브러리가 왜 필요한지 이해할 수 있다.
- Redux (혹은 Flux Pattern)에서 사용하는 Action, Reducer 그리고 Store의 의미와 특징을 이해할 수 있다.
- Redux의 3가지 원칙이 무엇이며, 주요 개념과 어떻게 연결되는지 이해할 수 있다.
- Presentational 컴포넌트와 Container 컴포넌트의 개념을 이해할 수 있다.
- Redux hooks(useSelector, useDispatch)를 사용해 store 를 업데이트할 수 있다.
redux가 없다면, 특정 컴포넌트에서 state값을 변경하거나 값을 받고 싶을때 상태를 가지고 있는 컴포넌트까지 props로 전달해주어야한다.
컴포넌트 아키텍쳐가 간단하다면 상관없지만 수십개의 컴포넌트가 있다면 컴포넌트를 전달해주는 작업은 너무나 비효율적이다.
그 문제점을 해결하기 위해 전역에서 상태관리를 하여 복잡성을 줄이기 위해 Redux를 사용한다.
1. 동일한 데이터는 항상 같은곳에서 가져와야한다.
데이터를 저장하는 하나의 store라는 공간이 있다는 의미
2. 상태는 read-only 이다.
상태를 변경하기 위해서는 action이라는 객체를 통해서만 변경할 수 있다.
3. 변경은 순수함수로만 가능하다.
reducer를 호출하여 상태를 변경하는데 이때, reducer는 순수함수로 다음 상태를 예측 가능하다.
store
Action
타입을 꼭 넣어주어야한다!!
{
type: "ORDER",
drink: {
menu: "Americano",
size: "Grande",
iced: false
}
}
Reducer
subscribe
출처 : 생활코딩