인프런 커뮤니티 질문&답변

CARL님의 프로필 이미지

작성한 질문수

Next + React Query로 SNS 서비스 만들기

리액트쿼리 prefetch 시에 QueryClient 생성에 대해 질문드립니다.

해결된 질문

24.04.05 01:27 작성

·

197

1

csr 에서는 useQueryClient로 생성된 QueryClient를 가져와 사용하는 반면에

ssr 에서 prefetch 할 때에는 QueryClient 를 새로 생성해서 사용하시더라구요.

  1. 그럼 ssr에서 생긴 QueryClient csr에서 생긴 QueryClient 두개가 존재하게 되는데, 리액트쿼리가 hydrate 하는 과정에서 알아서 합쳐주는 건지 그 원리가 궁금합니다.

 

2. prefetch를 할 때마다 QueryClient를 새로 생성해야 하는지 아니면 ssr에서 사용할 QueryClient를 하나 생성해서 공유하는 방식으로 사용해야 하는 것인지, 또 공유해서 사용한다면 예제가 있을까요?

 

  1. 만약 prefetch 할 때마다 QueryClient를 새로 생성해야 한다면 성능상에 문제는 없을까요? prefetch를 난발하는 것을 멈추고 조심히 사용해야 할까요?

    강의 덕분에 많이 배웠습니다. 좋은 강의 감사합니다.

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2024. 04. 05. 15:19

  1. SSR 후에는 클라이언트에 데이터만 보냅니다. SSR시 생성한 queryClient는 prefetch를 한 후 역할을 다하고 더이상 쓰이지 않습니다.

  2. 하나만 생성해서 공유해도 되긴 할겁니다. 다만 딱히 이득은 없습니다. 파일 하나 만들어서 export const queryClient = new QueryClient(); 하고 import해서 쓰면 됩니다.

  3. QueryClient를 new 해서 생성하는 것 자체가 시간이 거의 소요되지 않습니다.

CARL님의 프로필 이미지

작성한 질문수

질문하기