Store은 state를 저장하는 객체이다. Redux에는 하나의 상태저장소가 있고, 여기서 대부분의 state를 관리한다.
Store의 state는 Reducer를 통해서만 변경이 가능하다. Reducer는 그 이전상태값과 action을 인자로 가지며, 이 두가지를 받아와 새로운 state를 반환한다.
reducer에 action을 전달해주는 역할은 하는 것이 dispatch이다. dispatch(action)을 할 경우, action의 type에 맞는 데이터를 받아와 state를 return해준다. action은 객체로서, 반드시 type을 가지며, 동적으로 payload를 가질 수 있다.
Redux의 장점 중 하나는 상태 변화를 예측가능하고 투명하게 만든다는 점이다. 액션이 보내질때마다 새 상태가 계산되고 저장된다. 상태는 스스로 변할 수 없으며 특정 액션의 결과로만 변경된다. 그러므로 Reducer에서 반환하는 state값은 불변성을 유지해야한다. 즉 이전 state를 push등을 사용하여 직접 수정할 수 없다. 반드시 그 전 state와 다른 객체로 반환되어야한다. 이것이 return {...state}와 같은 spread 방법을 사용하는 이유중 하나이다.
실행컨텍스트(Execution context) 및 콜스텍 (0) | 2020.12.16 |
---|---|
함수형프로그래밍 - HOF (0) | 2020.12.15 |
함수형 프로그래밍 - 클로저 (0) | 2020.12.14 |
웹페이지 구동방식_ SSR과 CSR, 그리고 React (0) | 2020.12.08 |
이론공부_ web, http, api (0) | 2020.11.29 |
댓글 영역