Docs
GUIDES & CONCEPTS
Default Query Fn

Default Query Function

앱 전체에서 동일한 쿼리 함수를 공유하고, TanStack Query에 default Query Function을 제공해서 쿼리 키만으로 어떤 데이터를 가져와야 할지 식별할 수 있습니다:

// 쿼리 키를 받는 기본 쿼리 함수 정의
const defaultQueryFn = async ({ queryKey }) => {
  const { data } = await axios.get(
    `https://jsonplaceholder.typicode.com${queryKey[0]}`
  );
  return data;
};
 
// 기본 쿼리 함수를 기본 옵션으로 앱에 제공
const queryClient = new QueryClient({
  defaultOptions: {
    queries: {
      queryFn: defaultQueryFn,
    },
  },
});
 
function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <YourApp />
    </QueryClientProvider>
  );
}
 
// 키만 전달하면 됩니다!
function Posts() {
  const { status, data, error, isFetching } = useQuery({
    queryKey: ["/posts"],
  });
 
  // ...
}
 
// 쿼리 함수(queryFn)를 생략하고 실행할 수도 있습니다.
function Post({ postId }) {
  const { status, data, error, isFetching } = useQuery({
    queryKey: [`/posts/${postId}`],
    enabled: !!postId,
  });
 
  // ...
}

기본 쿼리 함수(queryFn)를 오버라이드하고 싶다면, 평소에 사용하던 쿼리 함수를 옵션에 명시해주면 됩니다.