목록형 UI에서 데이터를 한 번에 가져오는 것이 아니라 필요한 만큼, 또는 화면에 보이는 만큼한 백엔드에 요청하고 응답받아 사용하는 방식을 말한다.
페이지네이션은 백이나 프론트 둘 중 한 쪽만 하는 것이 아니라 둘 다 해당 API에 대해 서로 어떤 값이 필요한지, 어떻게 데이터를 줘야 하는지 정하는 부분이 필요하다.
스크롤이 하단에 닿는 순간에 새로운 페이지를 가지고 와 이어서 보여주는 것도 페이지네이션 종류 중 하나이다.
페이지네이션을 구현하기 위해서는 limit과 offset의 개념이 필요하다.
limit - 한 페이지에 보여 줄 데이터 수
offset - 데이터가 시작하는 위치(index)
6개씩 데이터를 가져올 때 (limit : 6)
page number : 1 / offset : 0
page number : 2 / offset : 6
// 첫 화면
const res = await fetch('https://api.com/restaurants?limit=&&offset=0);
// click event
const res = await fetch('https://api.com/restaurants?limit=&&offset=6);
offset을 state로 관리하면서 클릭할 때 마다 새로운 offset으로 업데이트 하여 가지고 있으면 된다.
const LIMIT = 6;
// 보통 변하지 않는 변수는 대문자로 표현한다
const res = await fetch(input: `https://api.com/restaurants?limit=${LIMIT}&offset=0`);