목록 보기
Apollo Client Pagination Fetching Guide
프론트엔드

Apollo Client Pagination Fetching Guide

핏펫
핏펫
2022년 11월 28일

두줄요약

Apollo Client 무한스크롤을 `refetch`에서 `fetchMore`로 바꾸는 리팩토링 과정을 정리했습니다. 캐시 정책과 첫 페이지 예외 처리까지 함께 맞춰 페이징 문제를 해결했습니다.

핵심 내용

  • Apollo Client의 기존 무한스크롤 페이징을 refetch 기반에서 fetchMore 기반으로 리팩토링한 과정
  • useIntersectionObserver로 페이지 증가를 감지하고, updateQuery에서 기존 목록과 신규 응답의 edges를 머지하는 방식
  • fetchMore 사용 시 cache-and-network 설정과 첫 페이지에서는 추가 호출을 막는 조건 분기 필요성
  • totalCount가 작을 때 발생한 초기 빈 리스트 문제와 pageNumber === 1 예외 처리로 해결한 경험

적용해볼 점

  • Apollo 무한스크롤에서 refetch보다 fetchMore + updateQuery 조합 검토
  • 페이징 cursor 계산과 캐시 정책을 함께 점검
  • 첫 요청과 추가 요청의 실행 타이밍 충돌 방지

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...