TanStackQuery 공식 홈페이지 따라하기

TanStackQuery (8) - Background Fetching

vitamin3000 2025. 1. 30. 19:15

 

쿼리의 status === 'pending' 상태는 쿼리의 초기 로딩 상태를 보여주기에 충분하지만,

때때로 쿼리가 백그라운드에서 다시 패치중을 나타내고 싶을 때가 있다.

이를 위해 쿼리는 status 변수의 상태와 고나계없이 패치 중 상태임을 보여주는데 사용할 수 있는 isFetching boolean 값도 제공한다

 

function Todos() {
	const { status, data: todos, error, isFetching, }  = useQuery({
    	queryKey: ['todos'],
        queryFn: fetchTodos,
     })
     
   return status === 'pending' ? (
	<span>Loading...</span>
   ) : status === 'error' ? (
   	<span> Error: { error.message} </span>
    ): (
    	<>
        	{isFetching ? <div>Refreshing..</div> : null}
            // ...

 

 

global Background fetching 로딩 상태 표시

개별 쿼리 로딩 상태 외에도 쿼리를 패칭할 때 글로벌 로딩 표시기를 표시하려면 useIsFetching hook을 사용할 수 있다.

import { useIsFetching } from '@tanstack/react-query'

function GlobalLoadingIndicator() {
	const isFetching = useIsFetching()
    
    return isFetching ? (
    	<div> Queries are fetching in the background...</div>
    ) : null
 }