Vanilla Redux - counter 구현하기
VanillanJS로 counter 구현하기
<body> <button id="add">Add</button> <span></span> <button id="minus">Minus</button> </body>
const add = document.querySelector('#add'); const minus = document.querySelector('#minus'); const number = document.querySelector('span'); let count = 0; number.innerText = count; const updateText = () => { number.innerText = count; }; const handleAdd = () => { count++; updateText(); }; const handleMinus = () => { count--; updateText(); }; add.addEventListener('click', handleAdd); minus.addEventListener('click', handleMinus);
동작구현
Vanilla-Redux로 counter 구현하기
먼저 Redux를 사용하려면
yarn add redux
ornpm install redux
명령어를 실행한다.
import { createStore } from 'redux'
redux의 createStore를 import한다.
store는 data, state를 관리하는 곳이다.state: application에서 바뀌는 data들을 의미한다.
아래의 코드에서는 state가 count가 된다.
import { createStore } from 'redux'; const add = document.querySelector('#add'); const minus = document.querySelector('#minus'); const number = document.querySelector('span'); let count = 0; number.innerText = count; const updateText = () => { number.innerText = count; }; const handleAdd = () => { // increase count++; updateText(); }; const handleMinus = () => { // decrease count--; updateText(); }; add.addEventListener('click', handleAdd); minus.addEventListener('click', handleMinus);
store가 하는 일은 기본적으로 data를 넣을 수 있는 장소를 생성한다.
createStore( ) 함수는 reducer를 주길 요구하고 있다.
그리고 reducer는 함수여야 된다. 그럼 reducer가 도대체 뭘까?
reducer
reducer는 데이터들을 수정하고 변경한다.
reducer가 리턴하는 것이 application에 있는 data들이 된다.
import { createStore } from 'redux'; const add = document.querySelector('#add'); const minus = document.querySelector('#minus'); const number = document.querySelector('span'); const countModifier = () => { return 'Hello Redux!'; }; const countStore = createStore(countModifier); console.log(countStore);
countStore가 콘솔에 찍힌 값을 확인해보면, 함수들을 확인할 수 있다.
console.log(countStore.getState()); // Hello Redux!
const countModifier = (state = 0) => { console.log(state); return state; }; // store가 하는 일은 기본적으로 data를 저장하는 장소, reducer를 만들어서 넣어줘야 된다. const countStore = createStore(countModifier); console.log(`얘는 이제 초기화 한 다음 : ${countStore.getState()}`);
state의 초기값을 10으로 해놓고 getState()를 찍어봐도 값이 잘 찍히는 것을 확인할 수 있다.
state를 다루는 것은 위의 countModifier에서만 가능하도록 해야 되는데 어떻게 할 수 있을까?
바로 action을 사용해서 state를 증가, 감소시킬 수 있다.
중간 정리
- crateStore( )로 Store를 create한다.
- store는 data를 저장하는 공간이다.
- crateStore( )에는 reducer를 넣어줘야된다.
- default로 data modifier는 현재의 state와 함께 불려진다.
- state를 action를 통해 modify한다.
action
action은 redux에서 function을 부를 때 쓰는 두번 째 parameter, argument이다.
action에 값을 보내려면, store.dispatch( )를 사용해야 된다.
Author And Source
이 문제에 관하여(Vanilla Redux - counter 구현하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jy777hi/Vanilla-Redux-React-Redux-Redux저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)