- props drilling 방지
- state(상태) 관리 용이
외부에서 데이터 변경 막기(Immutability)
store: 전역으로 state 관리
reducer: state 수정 방법
dispathch: 컴포넌트에서 state 수정 요청
getState: 데이터 가져오기
- 리덕스의 핵심은 Store
- Store는 정보가 저장되는 곳
- Store 안에는 state라는 실제 정보가 저장된다.
- state는 절대 직접 접근이 불가하다. 누군가를 통해야한다.
- reducer
- render는 UI를 만들어줄, 개발자가 작성할 코드 부분
- Store에 접근 하기 전에, 일종의 창구 직원 역할하는 함수(dispatch, subscribe, getState)
- render는 state 값을 참조해서, UI를 만든다.
- state가 바뀔 때마다, render가 호출되게할 때, subscribe를 사용한다.
- submit을 눌렀을 때, 객체 하나를 전송한다. 이때 이 객체를 action이라고 한다.
- 이 action은 dispatch에 전달된다.
- dispatch는 2가지 일을 한다.
- reducer를 호출해서, state 값을 바꾼다.
- reducer에 현재의 state 값과, action을 값이 주어진다.
- reducer의 return 하는 객체는 state의 새로운 값이 된다.
- reducer는 state를 입력 값으로 가지고, action을 참조해서, 새로운 state 값을 만들어서, return 해주는 state를 가공해주는 가공자이다.
- 이후, subscribe를 이용해서, render를 호출한다.
- 새로운 state에 맞게 UI가 변한다.
이미지 출처(https://opentutorials.org/course/4901/24935)
React 입문자들이 알아야할 Redux 쉽게설명 (8분컷)