Post

tanstack Query - useQueries

useQueries

https://tanstack.com/query/latest/docs/framework/react/reference/useQueries

1. 소개

useQueries은 useQuery처럼 서버 데이터를 가져오기 위해 사용되는 훅입니다. useQuery와 다른 점은 useQueries는 여러 데이터를 병렬로 가져올 때 사용한다는 점입니다. 데이터의 반환순서는 입력 순서와 동일합니다. (순서대로 결과값을 받음)

2. useQueries

1
2
3
4
5
6
const ids = [1,2,3]
const results = useQueries({
  queries: ids.map(id => (
    { queryKey: ['post', id], queryFn: () => fetchPost(id), staleTime: Infinity },
  )),
})
  • id가 1,2,3인 post를 가져오도록 요청
  • results에는 id가 1,2,3로 요청된 결과값이 순서대로 담긴 배열이 들어있음

3.useQueries 옵션

#queries

  • 필수
  • 여러 쿼리들을 작성

#combine 옵션

  • 여러개의 결과값을 하나로 결합할 때 사용
  • 결과를 원하는 형태로 변경하여 반환할 수 있음
1
2
3
4
5
6
7
8
9
10
11
12
const ids = [1,2,3]
const combinedQueries = useQueries({
  queries: ids.map(id => (
    { queryKey: ['post', id], queryFn: () => fetchPost(id) },
  )),
  combine: (results) => {
    return ({
      data: results.map(result => result.data),
      pending: results.some(result => result.isPending),
    })
  }
})

4.useQueries

반환값은 useQuery와 동일

This post is licensed under CC BY 4.0 by the author.