const {data, fetchNextPage, hasNextPage, isFetching} = useInfiniteQuery(queryKey, fetchFunction, options);
['books', location.search]
처럼 배열을 queryKey로 전달할 수 있는데, books는 이 쿼리(요청)가 책 데이터를 대상으로 한다는 것을 나타내고, location.search는 현재 페이지의 URL 쿼리 스트링을 의미한다. 이 URL 쿼리 스트링이 변경될 때마다, 해당 조건에 맞는 데이터를 서버로부터 새로 가져온다.IntersectionObserver는 웹 페이지 내의 특정 요소가 뷰포트(사용자가 현재 보고 있는 화면의 부분)와 교차하는지 비동기적을 감지하는 기능을 제공한다.
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
// entry.isIntersecting은 요소가 뷰포트에 교차하는지 여부를 나타낸다
if (entry.isIntersecting) {
console.log('요소가 뷰포트에 진입하였습니다.')
// 요소에 대한 관찰 중지
observer.unobserve(entry.target);
}
});
});
// observe 메서드를 사용하여 ...요소에 대한 감시 시작
observer.observe(...)