Redux
: 자바스크립트 어플리케이션의 state를 관리할 수 있다.
- 리덕스는 리액트와 분리되어있다. 앵귤러, 뷰, 바닐라 등에서 쓸 수 있다.
- Redux 문서(한글): http://dobbit.github.io/redux
state
: 바뀌는 data
- redux는 모든 것을 state로 관리
store
: state를 넣는 저장소
reducer
: state를 변경하는 함수
create-react-app
$ npx create-react-app vanilla-redux
프로젝트 구조
- public, src 폴더
$ npm add redux
store.getstate()
: 현재 state 값 (return data)
store.subscribe()
: 현재 state 변화 감지
store.dispatch()
: action 메세지를 보내면서 store와 커뮤니케이션
: action 타입은 무조건 object
ex) 간단한 계산기 예제
import {createStore} from "redux";
const ADD = "add";
const MINUS = "minus";
const add = document.querySelector("#add");
const minus = document.querySelector("#minus");
const num = document.querySelector("#num");
num.innerText = 0;
const reducer = (count = 0, action) => {
switch(action.type) {
case ADD:
return count+1;
break;
case MINUS:
return count-1;
break;
default:
return 0;
break;
}
};
const store = createStore(reducer);
console.log(store.getState());
const calAdd = () => {
store.dispatch({type: ADD});
}
const calMinus = () => {
store.dispatch({type: MINUS});
}
const updateCal = () => {
num.innerText = store.getState();
}
add.addEventListener("click", calAdd);
minus.addEventListener("click", calMinus);
store.subscribe(updateCal);
728x90
반응형
'개발공부' 카테고리의 다른 글
GET 요청 시 "414 URI Too Long" 에러 발생 해결 방법 (0) | 2020.08.20 |
---|---|
브라우저 localStorage 데이터 저장하기 (0) | 2020.07.04 |
[Git] 원격 저장소에 올라간 커밋 되돌리기 (0) | 2020.04.03 |
[Git] SVN 저장소에서 GIT으로 이전하기 (0) | 2020.04.03 |
[Git] 원격 저장소 하위 폴더, 특정 폴더 Clone 하기 (0) | 2020.03.30 |
댓글