zustand에 대한 질문입니다
73
작성한 질문수 5
zustand에서 값을 가져올때
useStore((state) => state...) 이거랑 useStore.getState()... 이거랑 어떤 차이인가요?
전자가 컴포넌트안에서 렌더링할때 가져오는 방식이고 후자는 단순히 현재시점의 스냅샷을 가져오는 건가요?
답변 2
1
안녕하세요 홍재훈님.
질문하신 내용이 맞습니다.
전자가 컴포넌트 안에서 렌더링 할 때 가져오는 방식이고 (범용적 사용법)
후자는 단순히 현재 시점의 스냅샷을 가져오는 방법입니다.
위의 인프런 인턴이 답변한 내용이 조금 더 자세하게 답변이 되어 있으므로
한 번 읽어보시면 도움이 될 것 같습니다.
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다. 홍재훈님.
Zustand에서 상태를 가져오는 방법인 useStore((state) => state...)와 useStore.getState()의 차이에 대해 궁금하신 것 같습니다.
주요 차이점:
useStore((state) => state...):- 컴포넌트 내에서 사용: 이 방식은 React 컴포넌트 내에서 사용하는 것이 일반적입니다. Zustand의 상태를 React의 state로서 불러와서 컴포넌트가 리렌더링할 때 자동으로 상태 변화를 감지하고 업데이트됩니다.
- 자동 리렌더링: 상태가 변경되면 해당 상태를 읽고 있는 컴포넌트는 자동으로 리렌더링됩니다. 이는 React 훅으로서
useEffect와 유사하게 작동하여 상태 변화를 구독(subscribe)합니다.
- 컴포넌트 내에서 사용: 이 방식은 React 컴포넌트 내에서 사용하는 것이 일반적입니다. Zustand의 상태를 React의 state로서 불러와서 컴포넌트가 리렌더링할 때 자동으로 상태 변화를 감지하고 업데이트됩니다.
useStore.getState():- 단순 접근: 이 방식은 단순히 현재 상태의 ‘스냅샷’을 가져오는 방식입니다. React 컴포넌트의 리렌더링에 영향을 주지 않으며, 상태 변화에 따라 자동으로 업데이트되지 않습니다.
- 비동기 작업이나 이벤트 처리: 상태의 변화를 감지하지 않고, 그저 현재 상태의 값을 읽어야 할 때 (예: 비동기 작업이나 이벤트 핸들러) 유용합니다.
- 단순 접근: 이 방식은 단순히 현재 상태의 ‘스냅샷’을 가져오는 방식입니다. React 컴포넌트의 리렌더링에 영향을 주지 않으며, 상태 변화에 따라 자동으로 업데이트되지 않습니다.
따라서, 가지고 오신 두 가지 방식은 각기 다른 상황에서 유용하며, 컴포넌트의 리렌더링 여부에 따라 적절히 선택하여 사용할 수 있습니다.
이와 관련된 더 많은 정보를 원하신다면, 다음의 참고 링크를 확인해 보시면 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
몽고디비 접속의 건
0
11
2
소스코드 제공여부
0
47
2
기본 파일 구조
0
47
2
공부방향에 대한 조언
0
57
2
styled-components
0
44
2
상태(State) 가 "시간이 지남~" 에 대해 질문 있습니다.
0
61
2
import {} 중괄호 차이점
0
56
2
[ 문의]몽고DB connect 의 건
0
72
2
제공되는 react_code.zip 중에 ..
0
68
2
커리큘럼 비활성화
0
56
2
설명하시는 개념들을 잘 모르겠습니다.
0
60
2
이해가 절반 정도 되는데요.
0
70
1
styled-components(전역)
0
68
1
cloudinary 관련
0
88
3
useOptimistic 실전-1 useState
0
93
2
discord 초대장 갱신이 필요한거같습니다.
0
90
1
할일 관리 앱(메모이제이션)
0
110
2
Web 플랫폼 등록
0
169
2
함수 정의 기준
0
94
2
fetch는 사용되는가
0
97
2
전역상태 관리 선택 기준
0
133
2
tailwind css는 언제 사용되는가 또 다른 css와의 차이
0
259
2
카카오 web플랫폼 등록
0
213
2
컴포넌트 그리고 폴더 구조에 대해
0
91
2





