react-query에서 제공하는 hook으로, 데이터를 페이지나 커서 기반의 인피니트 리스트로 가져오는 API를 쿼리하는 데 사용됩니다.
useInfiniteQuery는querykey, queryFn, option 3개의 프로퍼티를 가집니다.
queryFn는 pageParam
를 매개변수로 가져올 수 있습니다.
pageParam
: useInfiniteQuery가 현재 어떤 페이지에 있는지를 확인할 수 있는 값입니다.
pageParam
에서 설정한 url를 기본값으로 pageParm를 사용하여 queryFn를 실행하게 됩니다.
기본값은 initialPageParam
옵션에서 설정하게됩니다.
useInfiniteQuery({
querykey : ['쿼리키'],
queryFn :({pageParam}) => fetchData(pageParam),
option,
});
useInfiniteQuery에서 반환 data는 pages
와 pageParams
로 이루어져 있습니다.
pages
: 각 쿼리에 대한 data와 pargeParam를 가진 객체 배열입니다,
pageParams
: 각 쿼리에 대한 페이지 파라미터 배열입니다.
{
pages: [
{ pageParam: 1, data: [...] }, // 첫 번째 페이지
{ pageParam: 2, data: [...] }, // 두 번째 페이지
// ...
],
pageParams: [1, 2, ...] // 사용된 페이지 파라미터들
}
각 쿼리는 pages 배열의 자신만의 데이터를 가지고 있고, 쿼리는 페이지가 변경될 때마다 같이 변경되며, 페이지 매개변수는 검색된 쿼리의 키를 추적합니다.