목록 보기
React Query의 구조와 useQuery 실행 흐름 살펴보기
프론트엔드

React Query의 구조와 useQuery 실행 흐름 살펴보기

두줄요약

React Query의 QueryClient·QueryCache·Query·QueryObserver 내부 역할을 살펴봤습니다. useQuery가 useSyncExternalStore로 상태 변경을 구독하고 뷰를 갱신하는 흐름을 설명합니다.

구조와 흐름

  • @tanstack/query-core의 QueryClient, QueryCache, Query, QueryObserver와 React 연동용 @tanstack/react-query의 분리
  • QueryClient를 통한 캐시 접근, QueryCache의 queryHash 기반 Query 생성·재사용
  • 동일 queryKey의 유효한 서버 상태 재활용과 중복 네트워크 요청 방지

핵심 내용

  • Query의 QueryState 변경 시 dispatch·reducer 기반 상태 갱신과 연결된 QueryObserver 알림
  • QueryObserver의 이전·이후 결과 얕은 비교를 통한 불필요한 리스너 알림 최소화
  • notifyManager 배치 처리와 리스너 순회 기반 변경 전파

구조와 흐름

  • useQuery의 옵션 정제 후 useBaseQuery와 QueryObserver 전달
  • 컴포넌트별 QueryObserver 인스턴스 생성과 useSyncExternalStore 기반 구독 연결
  • QueryObserver.notify의 리스너 실행을 통한 컴포넌트 리렌더링과 최신 데이터 표시

적용해볼 점

  • queryKey를 캐시 식별자이자 데이터 재사용 기준으로 인식
  • 서버 상태 갱신부터 뷰 업데이트까지의 Observer·외부 스토어 구독 흐름 이해

카카오 계열사 채용30건

채용 사이트에서 전체 보기

다음 읽기

#React Query 주제를 이어서 읽기

React Query의 구조와 useQuery 실행 흐름 살펴보기

React Query의 내부 구조와 useQuery 실행 흐름을 살펴보았습니다. Query 상태 변화가 QueryObserver와 리스너를 거쳐 컴포넌트 리렌더링으로 이어지는 과정을 정리했습니다.

카카오엔터테인먼트FE
카카오엔터테인먼트FE
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...