[Redux] Reducers

M_yeon·2022년 12월 13일
0

redux

목록 보기
3/4
post-thumbnail

리덕스의 리듀서란?

action은 그냥 함수입니다.
action의 값은 달라졌는지, 안달라졌는지 둘중 하나의 결과를 만들어줍니다.

Pure Function으로 시간에 따라 값이 바뀌는 데이터는 넣으면 안된다고 하네요!

리덕스가 값을 인지하는 방식은 [Immutable]
리액트일 때 [state,setState]=useState("")
state로 값이 바뀌고 받아오고 했지만
리덕스에서는 이걸 따로따로 객체 설정을 해야합니다.

위에서 말한 reducers(Pure Function)을 이용해서 state가 달라졌는지 체크하는 방식이기 때문이죠!

function toDoApp(previousState, action) {
  return previousState;
  // 어떠한 변화도 있지 않다면 previousState 리턴, action이 변경되도 previousState가 리턴될 것이다.
}
  • action을 받아서 state를 리턴하는 구조
  • 인자로 들어오는 previousState와 리턴되는 newState는 다른 참조를 가지도록 해야합니다.
function toDoApp(previousState = [], action) {
  // 초기값을 설정 해주는 부분

  if (action.type === ADD_TODO) {
    return [...previousState, action.todo];
  }

  return previousState;
  // 어떠한 변화도 있지 않다면 previousState 리턴, action이 변경되도 previousState가 리턴될 것이다.
}

여기까지는 패스트캠퍼스 강의이지만 노마드코드 강의에서는 아래처럼 실습했었습니다

const countModifier = (count = 0, action) => {
  console.log(count, action);
  if (action.type === 'ADD') {
    return count + 1;
  } else if (action.type === 'MINUS') {
    return count - 1;
  } else {
    return count;
  }
};

0개의 댓글