🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

리덕스의 동작원리가 조금 헷갈립니다

22.02.20 03:22 작성 조회수 319

0

 
useSelector((state)=>state.user.isLoggedIn)의 코드가 잘 이해가 가지 않아서 질문합니다. 동작은 잘됩니다. 하지만 동작이 왜 되는지 잘모르겠습니다. 왜냐하면 state를 import하지 않아서 위 코드에서 state를 어디서 읽어오는지를 아무리 생각해도 잘 모르겠습니다.
 
나름대로 이유를 생각해봤을때는 _app.js파일에 wrapper.withRedux로 감싸놓아 모든파일에 적용된게 아닐까 생각이 드는데 wrapper.withRedux의 역할도 정확히 모르겠습니다.. 위에 질문과 wrapper.writRedux의 역할을 설명해주실수 있으실까요?
 
 
 
 

답변 1

답변을 작성해보세요.

0

일단 wrapper.withRedux가 react-redux의 Provider 역할을 하는 게 맞습니다.

Provider는 context-api를 내부에 쓰고 있어서 어떤 컴포넌트에서든 스토어의 값을 쓸 수 있게 해줍니다. 스토어의 값을 state라고 합니다.

useSelector는 커스텀훅으로 훅 내부에서 useContext같은 context-api 값 불러오는 기능을 사용하고 있습니다. 거기에 있는 state에서 state.user.isLoggedIn 값을 가져오라고 지시하는 게 저기 useSelector 훅의 역할입니다.

김태윤님의 프로필

김태윤

질문자

2022.02.20

Provider는 context-api를 내부에 쓰고 있다는게 조금 이해가 가질 않습니다. 리덕스와 context api는 독립적인 상태관리라이브러리로 이해하고 있습니다. Provider은 redux에 포함되어있는데 어떻게 context api가 내부에 포함되어있는지가 궁금합니다

p.s 제가 문장력이 부족해서 두서없이 작성하고 질문해서 죄송합니다.

아뇨 전혀요. context api는 라이브러리가 아닙니다. 리액트에서 제공하는 기능일 뿐입니다. 그 기능을 활용해서 Provider를 만든거고요. 참고로 Provider는 redux가 아니라 react-redux입니다.

김태윤님의 프로필

김태윤

질문자

2022.02.20

아 감사합니다 이해했습니다!

채널톡 아이콘