inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게

카카오 로그인 구현하기 - 4

zustand에 대한 질문입니다

69

홍재훈

작성한 질문수 5

0

zustand에서 값을 가져올때
useStore((state) => state...) 이거랑 useStore.getState()... 이거랑 어떤 차이인가요?
전자가 컴포넌트안에서 렌더링할때 가져오는 방식이고 후자는 단순히 현재시점의 스냅샷을 가져오는 건가요?

react react-router redux-toolkit zustand react.js

답변 2

1

수코딩

안녕하세요 홍재훈님.

질문하신 내용이 맞습니다.

전자가 컴포넌트 안에서 렌더링 할 때 가져오는 방식이고 (범용적 사용법)

후자는 단순히 현재 시점의 스냅샷을 가져오는 방법입니다.

위의 인프런 인턴이 답변한 내용이 조금 더 자세하게 답변이 되어 있으므로

한 번 읽어보시면 도움이 될 것 같습니다.

감사합니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 홍재훈님.

Zustand에서 상태를 가져오는 방법인 useStore((state) => state...)useStore.getState()의 차이에 대해 궁금하신 것 같습니다.

주요 차이점:

  1. useStore((state) => state...):

    • 컴포넌트 내에서 사용: 이 방식은 React 컴포넌트 내에서 사용하는 것이 일반적입니다. Zustand의 상태를 React의 state로서 불러와서 컴포넌트가 리렌더링할 때 자동으로 상태 변화를 감지하고 업데이트됩니다.
    • 자동 리렌더링: 상태가 변경되면 해당 상태를 읽고 있는 컴포넌트는 자동으로 리렌더링됩니다. 이는 React 훅으로서 useEffect와 유사하게 작동하여 상태 변화를 구독(subscribe)합니다.
  2. useStore.getState():

    • 단순 접근: 이 방식은 단순히 현재 상태의 ‘스냅샷’을 가져오는 방식입니다. React 컴포넌트의 리렌더링에 영향을 주지 않으며, 상태 변화에 따라 자동으로 업데이트되지 않습니다.
    • 비동기 작업이나 이벤트 처리: 상태의 변화를 감지하지 않고, 그저 현재 상태의 값을 읽어야 할 때 (예: 비동기 작업이나 이벤트 핸들러) 유용합니다.

따라서, 가지고 오신 두 가지 방식은 각기 다른 상황에서 유용하며, 컴포넌트의 리렌더링 여부에 따라 적절히 선택하여 사용할 수 있습니다.

이와 관련된 더 많은 정보를 원하신다면, 다음의 참고 링크를 확인해 보시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

상태(State) 가 "시간이 지남~" 에 대해 질문 있습니다.

0

34

2

import {} 중괄호 차이점

0

38

2

[ 문의]몽고DB connect 의 건

0

47

2

제공되는 react_code.zip 중에 ..

0

47

2

커리큘럼 비활성화

0

46

2

설명하시는 개념들을 잘 모르겠습니다.

0

43

2

이해가 절반 정도 되는데요.

0

56

1

styled-components(전역)

0

56

1

cloudinary 관련

0

71

3

useOptimistic 실전-1 useState

0

87

2

discord 초대장 갱신이 필요한거같습니다.

0

83

1

할일 관리 앱(메모이제이션)

0

99

2

Web 플랫폼 등록

0

140

2

함수 정의 기준

0

87

2

fetch는 사용되는가

0

88

2

전역상태 관리 선택 기준

0

109

2

tailwind css는 언제 사용되는가 또 다른 css와의 차이

0

210

2

카카오 web플랫폼 등록

0

193

2

컴포넌트 그리고 폴더 구조에 대해

0

78

2

152강 보는중입니다. 초시계부분이구요. 넘버가 timeout을 받을수없다는 에러가 나오고 있어요

0

52

1

폼테그 다른 태그를 하나의 상태 객체로 묶기

0

55

2

class를 className으로 전부 수정하실 때

0

49

2

JWT에 대한 개념도 학습할 수 있나요?

0

74

2

수업자료 다운로드

0

61

2