Redux 간단 설명

예진·2024년 10월 24일
0
post-thumbnail

YouTube 코딩애플 Redux 설명
영상을 보고 좀 정리했다. 클론코딩할 때 설명을 해주신다.
실제 코드 화면을 왔다갔다하면서 강의를 들으니까 잘 모르는 것도 더 이해가 안되는 느낌이여서 영상으로 찾아서 봤다.
확실히 영상처럼 틀을 알려주시니까 어제 들었던 강의에서 무슨말을 하는지 좀 정리가 됐다.

Redux 쓰는 이유

  1. prop가 사용할 부분이 점점 많아질 때
  2. state 변경 관리할 때 사용

Redux가 없는 상황

  • 우리는 지금 여러 컴포넌트를 만들어 프로젝트를 하고있다.
    state는 쉽게 말해 변수라고 보면되는데,
    이 state를 여기저기 컴포넌트에서 사용해야될 때가 생긴다.
    (좀 더 디테일하게 들어가자면 state는 특정 때의 나타나는 상태라고 보면된다. 계속 변화되는 값이다.)
  • state를 그냥 가져다가 붙여 넣기 하면 에러다.
    state를 다른 컴포넌트들이 쓰려면 props문법을 통해 전송을 해야한다.

1. props가 사용할 부분이 점점 많아지는 상황

  • 하위 컴포넌트에게 보내줘야한다면 하위-하위 컴포넌트로 props문법을 통해 state를 전달해줘야한다. 그냥 막가져다가 복붙하면 안된다.
    한 두 개의 컴포넌트라서 별거 없어보이지만 컴포넌트가 겁나 중첩이 되어있을 때를 생각해보자.

    그럼 하위-하위-하위-하위 .... 전달전달전달해야되는 상황이 온다.
  • 이상황에서 Reudx가 필요하다.
    컴포넌트 중첩이 많을 때마다 props문법을 계속 써줘야 되는데 이게 백 개가 중첩되면 하나하나 쓸 수 없으니 Redux를 사용한다.

store.js 생성

  • 아래 캡쳐처럼 store.js 파일을 만들어서 state를 한데 모아둔다.
    store에 있는 state를 꺼내서 props의 사용 없이,전달 없이 바로 사용가능이다.

  • Redux의 틀이라고 보면 될 것 같다. Redux가 쉬운 이유가 이렇게 틀이 있어서 그거 대로 만들면 된다.

  • 위에서 체중이라는 state를 가져다 쓰는 코드이다.
    이것도 리덕스 라이브러리 사용법이다 보니 그냥 외워라.
    컴포넌트에서의 state를 부르는 코드

Redux는 불필요한 props들을 대신한다.

  • props가 사용할 부분이 점점 많아지는 상황에서 Redux를 사용해서
    모든 컴포넌트들이 props 없이 state를 직접 꺼내다가 쓸 수 있다.
    • 반복되는 부분들이 없어서 공간차지를 줄일 수 있다~!

2. state 변경 관리할 때 사용

  • Redux는 state(상태) 관리가 용이하다.
    각 컴포넌트들이 필요한 state값들이 다를 수있다.
    어떤 컴포넌트에서는 state를 2로 나눈 값이나, +10으로 했을 때의 값을 필요로 할 때가 있을 수있다.
    컴포넌트들이 state를 각각 변경해서 쓰고싶어서 아래와 같이 state를 변경해놨다.
  • 여기서 문제 일어났다. store에 있는 몸무게 state가 숫자가 아닌 문자가 버그로 들어온거다.
    여기서 버그가 일어난 이유를 컴포넌트 하나하나 다 추적하며 찾아 봐야하는데 프로젝트가 커질수록 그게 어렵다는 것이다.

store에 state 값을 변경하는 방법을 적어 놓는다.

그래서 Redux를 이용해서 store에 해당 state의 수정방법을 변경해놓는다.

  • 위에서 각 컴포넌트들이 몸무게를 이렇게 저렇게 바꿔놓는 방식을 store에 옮긴 것같다. => API를 만든다고 말할 수 있겠다.
  • 그럼 각 컴포넌트들이 state의 바뀐 값 수정요청만 해서 state를 혼란 없이 값들을 바꾸고 get할 수 있다.

그래서 위에서 언급한 숫자가 문자로 바뀌는 그런 버그가 어디서 일어났는지 관리가 쉽겠다. store에서만 확인하면 되니까.

Reducer store에 같이 존재하는 것 같다.

  • 이렇게 state 변경사항을 묶어 놓은 것을 Reducer라고 한다.

Dispatch 컴포넌트에서 사용

  • Dispatch는 컴포넌트에서 state수정 요청하기 위한 함수다.
    Dispatch 함수에는 state를 어떻게 수정할 건지 적어 놓는 거겠져?

Redux말고 다른 라이브러리들..

  • MobX,Overmind.js, Recoil도 redux와 같은 기능을 제공해준다.

여담. 댓글에서 redux toolkit을 이용해 타입 지정을 해서 오류를 잡아준다. 이것도 클론코딩하면서 설명해주셨는데 실제로 사용한다는 말을 보니까 또 와닿는다.

추가해야할 내용

store 설정과 컴포넌트 설정 Reducer, Provider useSelector,dispatch 의 틀

0개의 댓글

관련 채용 정보