// 리덕스, Redux
- Cross-Component나 App-Wide 상태 관리 라이브러리
// Cross-Component State
- 여러 컴포넌트에 영향을 미치는 state
~ 모달창 open / close
// App-Wide State
- 애플리케이션 전체에 영향을 미치는 state
~ 사용자 인증
- 하나의 중앙 데이터 저장소
> 딱 하나에 원하는 state를 모두 저장한다.
- 컴포넌트는 저장소에 있는 state를 직접 변경하지 않고 Reducer 함수를 이용하여 변경한다.
> Component ->(dispatch) action -> Reducer 함수 -> Central State Store
1. 저장소 생성
const redux = require('redux');
const 저장소명 = redux.createStore();
2. Reducer 함수 추가
const reducer함수명 = (state = 기본값, action) => {
return {
};
}
- 2개의 parameter(기존 상태, action )를 받는다.
- 새로운 상태 객체를 return 한다. (이론적으로는 다른 형태로도 가능하지만, 실제로는 객체 return)
3. 저장소에 reducer 함수 전달
const redux = require('redux');
const 저장소명 = redux.createStore(reducer함수명);
4. 저장소를 subscribe 하는 함수 정의
const subscriber함수명 = () => {
const 최신상태명 = 저장소명.getState();
};
4. 저장소를 subscribe 하는 함수 실행
저장소명.subscribe(subscribe 함수명);
5. action 발송(dispatch)
저장소명.dispatch(action 객체);
const reducer함수명 = (state = 기본값, action) => {
if(action.type === '정의된type') {
return ...
}
return state;
}
- action 객체에 type을 선언하여 reducer 함수에서 구분할 수 있게 한다.
'클라이언트 > JavaScript' 카테고리의 다른 글
[자바스크립트(JavaScript)] 최대공약수, 최소공배수 구하기(유클리드 호제법) (0) | 2024.03.11 |
---|---|
[자바스크립트(JavaScript)] Million.js (0) | 2024.02.06 |
[자바스크립트(JavaScript)] 특정 범위에서 약수의 개수 구하기(에라토스테네스의 체) (0) | 2024.01.11 |
[자바스크립트(JavaScript)] 특정 범위에서 소수 구하기(에라토스테네스의 체) (0) | 2024.01.10 |
[자바스크립트(JavaScript)] Builder 패턴 (0) | 2023.12.18 |