본문으로 건너뛰기

필터

TanStack Query 내 일부 메서드는 QueryFilters 또는 MutationFilters 객체를 허용합니다.

Query Filters

쿼리 필터는 쿼리와 일치시키기 위한 특정 조건을 포함하는 객체입니다:

// Cancel all queries
await queryClient.cancelQueries()

// Remove all inactive queries that begin with `posts` in the key
queryClient.removeQueries({ queryKey: ['posts'], type: 'inactive' })

// Refetch all active queries
await queryClient.refetchQueries({ type: 'active' })

// Refetch all active queries that begin with `posts` in the key
await queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })

쿼리 필터 객체는 다음 속성을 지원합니다:

  • queryKey?: QueryKey
    • 일치시킬 쿼리 키를 정의하려면 이 속성을 설정합니다.
  • exact?: boolean
    • 쿼리 키를 기준으로 쿼리를 포괄적으로 검색하지 않으려면 exact: true 옵션을 전달하여 지정한 쿼리 키와 정확히 일치하는 쿼리만 반환할 수 있습니다.
  • type?: 'active' | 'inactive' | 'all'
    • 기본값은 all입니다
    • active로 설정하면 활성 쿼리와 일치합니다.
    • inactive로 설정하면 비활성 쿼리와 일치합니다.
  • stale?: boolean
    • true로 설정하면 stale 상태인 쿼리와 일치합니다.
    • false로 설정하면 fresh 상태인 쿼리와 일치합니다.
  • fetchStatus?: FetchStatus
    • fetching으로 설정하면 현재 가져오는 중인 쿼리와 일치합니다.
    • paused로 설정하면 가져오기를 시도했지만 paused된 쿼리와 일치합니다.
    • idle로 설정하면 가져오는 중이 아닌 쿼리와 일치합니다.
  • predicate?: (query: Query) => boolean
    • 이 조건자 함수는 일치하는 모든 쿼리에 대한 최종 필터로 사용됩니다. 다른 필터를 지정하지 않으면 캐시의 모든 쿼리를 대상으로 이 함수를 평가합니다.

Mutation Filters

뮤테이션 필터는 뮤테이션과 일치시키기 위한 특정 조건을 가진 객체입니다:

// Get the number of all fetching mutations
await queryClient.isMutating()

// Filter mutations by mutationKey
await queryClient.isMutating({ mutationKey: ['post'] })

// Filter mutations using a predicate function
await queryClient.isMutating({
predicate: (mutation) => mutation.state.variables?.id === 1,
})

뮤테이션 필터 객체는 다음 속성을 지원합니다:

  • mutationKey?: MutationKey
    • 일치시킬 뮤테이션 키를 정의하려면 이 속성을 설정합니다.
  • exact?: boolean
    • 뮤테이션 키를 기준으로 뮤테이션을 포괄적으로 검색하지 않으려면 exact: true 옵션을 전달하여 전달한 뮤테이션 키와 정확히 일치하는 뮤테이션만 반환할 수 있습니다.
  • status?: MutationStatus
    • 상태에 따라 뮤테이션을 필터링할 수 있습니다.
  • predicate?: (mutation: Mutation) => boolean
    • 이 predicate 함수는 일치하는 모든 뮤테이션에 대한 최종 필터로 사용됩니다. 다른 필터를 지정하지 않으면 캐시의 모든 뮤테이션을 대상으로 이 함수를 평가합니다.

유틸리티

matchQuery

const isMatching = matchQuery(filters, query)

쿼리가 제공된 쿼리 필터 집합과 일치하는지를 나타내는 boolean을 반환합니다.

matchMutation

const isMatching = matchMutation(filters, mutation)

뮤테이션이 제공된 뮤테이션 필터 집합과 일치하는지를 나타내는 boolean을 반환합니다.