state 관리에 대한 정리
안녕하세요 정환님 !!!
정환님 강의를 듣다가 state관리쪽에 개념이 갑자기 섞여서 질문을 하게되었어요
저는 현재 다음과 같은 방향으로 이해를 하고있어요
한 페이지내에서 여러 컴포넌트를 사용할때 간단한 자식 구조에서는
props를 사용한다.한 페이지내에서 여러 컴포넌트를 사용할때 3~4 혹은 그이상으로 자식관계가 걸쳐있는 상태에서는
conntext API를 사용한다.로그인과 같이 특정 페이지가 아니라 여러 페이지에서 관리가 필요한
state는 zustand처럼 전역 라이브러리를 사용한다.
제가 이해한 방향이 맞을까요??
回答 3
0
안녕하세요 kaeuhy님 이정환입니다.
전반적으로는 맞습니다. 다만 Zustand를 도입하시게 되면 Context API는 보통 잘 사용하지 않게 됩니다. Zustand가 Context API의 기능을 이미 다 제공해 주거든요!
0
해당 컴포넌트 내부에서만 쓰이는 state 이면 컴포넌트 내부에서
useState, useReducer를 사용합니다.부모-자식 간 간단한 전달이라면
props로 전달합니다.자식 간의 상태 공유이면 부모 컴포넌트에 상태를 끌어 올립니다
(Lifting State Up)깊은 계층 간에 전달(
props drilling)이라면Context API를 사용합니다.복잡한 전역 상태 및 비동기 처리 등의 상태 관리가 필요하다면
TanStack Query, Zustand,Redux등의 상태 관리 라이브러리를 사용합니다.
0
안녕하세요, 인프런 AI 인턴입니다. kaeuhy님.
React의 상태 관리에 대한 방향을 정리하시다 보니 헷갈리는 부분이 있으시군요. 질문에 대한 답변과 함께 각 방법의 사용에 대해 간단히 요약해드리겠습니다.
Props:
- 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달할 때 사용됩니다.
- 주로 컴포넌트 계층 내에서 상태가 깊이 중첩되지 않을 때 간단하게 사용할 수 있습니다.
- 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달할 때 사용됩니다.
Context API:
props drilling문제를 해결하기 위해 사용됩니다.
- 여러 컴포넌트에 걸쳐 데이터가 전달되어야 할 때 유용합니다. 예를 들어, 현재 선택된 테마, 현재 사용자 정보와 같은 전역적으로 사용되는 데이터에 적합합니다.
Zustand와 같은 전역 상태 관리 라이브러리:
- 복잡한 상태 관리가 필요한 상황에서 유용합니다.
- 상태 변경에 대한 논리와 데이터 흐름이 복잡할 때, store를 중앙에서 관리함으로써 앱의 복잡성을 줄일 수 있습니다.
- 로그인 정보, 유저 상태, 공통 설정 값 등 여러 페이지에 걸쳐 활용되는 데이터를 관리할 때 적합합니다.
- 복잡한 상태 관리가 필요한 상황에서 유용합니다.
각각의 방법은 React의 상태 관리에 대해 특정한 필요에 맞춰 최적의 도구를 선택해야 한다는 맥락이 있습니다.
참고로, Context 관련 상태관리 도구 질문에 대한 이정환 강사님의 답변도 도움이 될 것입니다. 질문에서 설명한 React Context API와 Zustand의 차이점을 설명하고, 상태 관리 도구 선택에 대한 고려 사항을 공유하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
useMutation 적용 후 새로운 글 등록시 content가 안보여요
0
25
2
6.8 zustand 세션 질문입니다.
0
69
2
next.js 강의에서도 리액트 라이브러리들을 다뤄주시나요?
0
57
2
shadcn에서 radix ui와 base ui 차이는 뭔가요?
0
205
2
updateTodo 함수 생성시 화살표 함수 사용 안하는 이유
0
61
2
4.11 바로 투두 삭제가 안됨 질문
0
73
3
매개변수 updatedTodo 관련 질문
0
55
3
인증 정보가 만료되었을 때 라우트 가드 처리가 궁금합니다!
0
72
2
supabase를 사용하지 않을 경우 세션 데이터의 변경을 감지하고 스토어에 보관하는 방법이 궁금합니다!
0
58
2
4.6 id를 string으로 변경시 오류
0
54
2
리액트 타입스크립트 관련 질문있습니다.
0
53
1
소셜 로그인 구현하기 관련하여 질문이 있습니다!
0
87
2
ui 파일 질문드립니다.
0
63
1
tanstack query devtools에서 질문있습니다!
0
56
2
댓글 삭제 시 isPending 질문
0
55
2
두번째 예외상황에 대해 질문있습니다!
0
54
1
리액트 쿼리 질문입니다
0
56
2
개발자도구에서 components 가 안보입니다.
0
78
3
[(2.4) Shadcn/ui를 소개합니다] 강의 Shadcn 세팅 관련 질문 있습니다.
0
148
3
like 테이블에서 왜 create_at이 필요한지 궁금합니다.
0
66
1
삭제가 바로 안되네요ㅠ
0
55
2
access 토큰은 꼭 소셜서버로부터 받아서 사용해야만하나요?!
0
72
2
전역 모달이 여러 개일 경우 모달 프로바이더는 몇 개가 필요한가요?
0
53
1
프로필 수정 후 post item 의 글들에서 수정된 프로필 업데이트 반영
0
70
2

