본문 바로가기
개발

(React)카운터 Redux로 만들기 - 5

by 싼쵸 2022. 6. 24.
반응형

가장 기본 예제인 카운터를 redux를 이용해 만들어 볼 거다
항상 리덕스를 사용할 줄 모르는 것에 부끄러움이 가득했는데 이번 기회에 타파할 예정이다.
참고 유데미 강의
React 완벽 가이드 with Redux, Next.js, TypeScript

 

 

(React)카운터 Redux로 만들기 - 4

가장 기본 예제인 카운터를 redux를 이용해 만들어 볼 거다 항상 리덕스를 사용할 줄 모르는 것에 부끄러움이 가득했는데 이번 기회에 타파할 예정이다. 참고 유데미 강의 React 완벽 가이드 with Red

sancho216.tistory.com

그전 코드는 위에 글을 가면 확인할 수 있습니다.

 

이번글에서 카운터를 보여줬다고, 숨겼다가 하는 기능을 추가할 예정이다.

 

Counter.js

 

import { legacy_createStore } from 'redux';

const initialState = { counter: 0, counterShow: true };
const counterReducer = (state = initialState, action) => {
  if (action.type === 'increment') {
    return {
      ...state,
      counter: state.counter + 1,
    };
  }
  if (action.type === 'increase') {
    return {
      ...state,
      counter: state.counter + action.payload,
    };
  }

  if (action.type === 'decrement') {
    return {
      ...state,
      counter: state.counter - 1,
    };
  }
  if (action.type === 'showSwitch') {
    return {
      ...state,
      counterShow: !state.counterShow,
    };
  }
  return state;
};
const store = legacy_createStore(counterReducer);

export default store;

 

코드에서 확인하면 initialState라는 객체를 추가해서 기존의 state의 넣어주는 기본값을 깔끔하게 옮기고, counterShow를 추가하고 기본 값으로 true를 넣어줬다. 왜냐하면 처음에는 카운터가 보여하니까

그리고 return 값 뒤에 스프레드 연산자를 활용해서 state , 후 내가 원하는 action 변화를 주었다.

    if (action.type === 'increment') {
  state.counter++;
    return state
  }
 
  
  if (action.type === 'increment') {
  state.counter++;
    return {
counter: state.counter,
      counterShow: state.counterShow
    };
  }

이번 강의를 들고 알게 된점이다. 사실 위에 코드 처럼 해도 잘동작이 된다.

근데 위의 코드를 들의 문제점은 기존코드를 변형해서 동작이 된다. 

기존코드를 변형해서 하는데 왜 문제냐라고 물어본다면 아직 나의 수준에서는 정확히 설명하기가 어려워서 간단하게 예측불가능한 동작이 생길수도 있고, 프로그래밍 디버깅이 어려워진다.

그렇기때문에 꼭 새 객체를  생성해야한다.

 

반응형

'개발' 카테고리의 다른 글

웹 폰트 최적화하기  (3) 2023.03.06
(React)카운터 Redux로 만들기 - 6  (0) 2022.06.24
(React)카운터 Redux로 만들기 - 4  (0) 2022.06.23
(React)카운터 Redux로 만들기 -3  (0) 2022.06.23
(React)카운터 Redux로 만들기 -2  (0) 2022.06.22

댓글