왜 컴포넌트 안에서 new QueryClient 사용을 지양해야 할까?

2023. 11. 24. 19:18·Frontend/Dev Practice
728x90
SMALL

요약

// Bad
const queryClient = new QueryClient();
queryClient.invalidateQueries();

// Good
const queryClient = useQueryClient();
queryClient.invalidateQueries();

 

 

 

React Query에 대한 소개

React Query는 데이터 관리와 캐싱을 위한 강력한 도구로, 애플리케이션에서 데이터를 효율적으로 관리하는 데 큰 도움을 줍니다. 그 중요한 부분 중 하나는 QueryClient 인스턴스의 적절한 관리와 사용입니다.

 

React Query의 QueryClient는 앱 전반에서 데이터 캐싱과 관련된 주요 작업을 처리합니다. 이러한 인스턴스는 앱 내에서 하나의 전역적 상태로 유지되어야 하는데, 그 이유에는 몇 가지 중요한 이유가 있습니다.

 

new QueryClient 사용을 지양해야 하는 이유

첫째로, 컴포넌트 내부에서 매번 new QueryClient를 사용하여 인스턴스를 생성하면 데이터의 일관성과 관리가 어려워집니다. 이는 컴포넌트가 리렌더링 될 때마다 새로운 인스턴스가 생성되어 데이터의 불일치 문제를 초래할 수 있습니다.

 

둘째로, React Query의 QueryClient는 쿼리 및 뮤테이션에 대한 메모리 캐싱을 포함하여 여러 기능을 수행하는 데 최적화되어 있습니다. 따라서 컴포넌트 내부에서 이 인스턴스를 새로 생성하는 것은 비효율적이며 메모리 누수 가능성을 초래할 수 있습니다.

컴포넌트 내에서 QueryClient를 사용하는 대신, 애플리케이션의 최상위 레벨에서 한 번 생성하고 앱 전체에서 사용하는 것이 좋습니다. 이렇게 함으로써 데이터 일관성을 유지하고 효율적으로 캐시 된 데이터를 관리할 수 있습니다.

 

React Query에서 QueryClient 인스턴스를 적절하게 관리하고 전역적으로 사용함으로써, 데이터의 일관성과 관리가 용이해집니다. 컴포넌트 내에서 인스턴스를 반복 생성하는 것은 지양해야 하며, 최상위 레벨에서 한 번 생성하여 앱 전체에서 일관된 데이터 관리를 유지하는 것이 중요합니다. 이는 애플리케이션의 성능과 유지보수성에 긍정적인 영향을 미칩니다.

 

결론

useQueryClient 를 사용해야 합니다!!

 

useQueryClient를 사용하는 것은 React Query에서 전역적인 데이터 일관성을 유지하고, 중복 인스턴스 생성을 방지하여 애플리케이션의 성능과 데이터 관리를 향상하는 데 중요합니다. 컴포넌트 내부에서 새로운 QueryClient를 생성하는 것은 데이터 불일치 문제를 초래할 수 있으며, useQueryClient를 활용함으로써 전역 쿼리 클라이언트에 쉽게 접근하여 데이터를 효율적으로 관리할 수 있습니다.

저작자표시 (새창열림)

'Frontend > Dev Practice' 카테고리의 다른 글

주석을 언제 작성해야 할까?  (3) 2024.10.27
빈 태그 사용을 피해야 하는 이유  (0) 2024.03.16
React Query에서 Non-null Assertion Operator 사용하기 좋은 방법일까?  (0) 2024.02.18
똑똑한 컴포넌트, 어디까지가 좋을까?  (0) 2024.01.26
협업하기 위한 CSS 컨벤션  (0) 2023.09.18
'Frontend/Dev Practice' 카테고리의 다른 글
  • 빈 태그 사용을 피해야 하는 이유
  • React Query에서 Non-null Assertion Operator 사용하기 좋은 방법일까?
  • 똑똑한 컴포넌트, 어디까지가 좋을까?
  • 협업하기 위한 CSS 컨벤션
끄적끄적 개발자
끄적끄적 개발자
생각나는 대로 끄적끄적, 코드 노트
  • 끄적끄적 개발자
    코딩을 끄적끄적
    끄적끄적 개발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (47)
      • Frontend (43)
        • Tech Insight (24)
        • Dev Practice (7)
        • React Hook Form (4)
        • Module Federation (3)
        • Clone coding (5)
      • UIUX (2)
      • ETC (2)
  • 인기 글

  • 태그

    개발/기술
    개발/코드품질
    회고
    UI/UX
    개발/정보
    개발/언어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
끄적끄적 개발자
왜 컴포넌트 안에서 new QueryClient 사용을 지양해야 할까?
상단으로

티스토리툴바