액션 (Action)
- 리덕스의 상태 값을 수정하는 유일한 방법: 액션 객체와 함께 dispatch 메서드 호출
- 타입 속성값을 가진 자바스크립트 객체 (* type 속성 값이 꼭 존재해야 함)
- type 속성값으로 액션 객체 구분, type 속성값을 제외한 나머지는 상태 값을 수정하기 위해 사용되는 정보
- 액션 객체에는 type 속성 값 외에도 원하는 속성 값을 넣을 수 있음
- dispatch 메서드가 호출된 순서대로 리덕스 내부에서 상태 값 변경
리듀서 (Reducer)
- 액션이 발생했을 때 상태 값을 변경하는 함수
- useReducer를 작성할 때와 똑같은 형태를 가지고 있음
- Action(액션)에서 발생하는 dispatch() 메소드를 사용하여 reducer 호출
- (state, action) => nextState, 이전 상태 값과 액션 객체를 입력으로 받아서 새로운 상태 값을 만드는 순수 함수
- 순수함수이므로 side effect를 발생시키면 안 됨
- 상태값은 불변 객체로 관리해야 하므로 수정할 때마다 새로운 객체를 생성
- 스토어 생성 시, 상태 값이 없는 상태로 리듀서를 호출하므로, 매개변수의 기본값을 사용해서 초기 상태 값 정의
스토어 (Store)
- 상태가 관리되는 오직 하나의 공간
- 리덕스의 상태 값을 가지는 객체
- 액션이 발생(dispatch 메소드로 시작)하면, 리듀서를 실행하여 상태 값을 새로운 값으로 변경
- 사전에 등록된 모든 이벤트 처리 함수에게 액션의 처리가 끝났음을 알림
Store 내장 함수
- Dispatch : dispatch(action), reducer를 불러서 현재 state에 action을 발생시킴
- Subscribe : subscribe(function(){}), dispatch가 실행될 때마다 subscribe에 전달한 함수가 호출됨
'React.js' 카테고리의 다른 글
리덕스의 세 가지 원칙 (0) | 2022.07.26 |
---|---|
Hook이란? (0) | 2022.07.26 |
리액트 컴포넌트의 Life Cycle (0) | 2022.07.26 |
React.js 컴포넌트 선언 방식 (0) | 2022.07.26 |
React.js 특징 (0) | 2022.07.26 |