페이지네이션
긴 글 목록이나 아카이브를 이전·다음 묶음으로 넘기는 내비게이션이다. Muse에서는 번호를 잔뜩 늘어놓는 대신 방향 버튼과 위치 라벨만 남겨 지면의 리듬을 지킨다. 양 끝에서는 갈 수 없는 방향을 흐리게 막아 현재 위치를 알린다.
상태
첫 페이지
중간
마지막
비활성
갈 수 없는 방향은 hasPrevious·hasNext 를 꺼서 흐리게 막는다.
활용 방법
기본
hasPrevious·hasNext 로 이동 가능 여부를 정하고 label 로 현재 위치를 보여준다. 넘길 항목이 남았을 때 해당 방향을 켠다.
Preview
tsx
<PaginationhasPrevioushasNextlabel="26-50 / 248"onPrevious={() => setPage((p) => p - 1)}onNext={() => setPage((p) => p + 1)}/>
링크 이동
previousHref·nextHref 를 주면 방향 버튼이 링크로 렌더된다. 서버 라우팅으로 페이지를 넘기는 아카이브에 쓴다.
Preview
tsx
<PaginationhasPrevioushasNextpreviousHref="/archive/issue-1"nextHref="/archive/issue-3"label="2호 / 12호"/>
라벨 다듬기
previousLabel·nextLabel 로 접근성 라벨을 상황에 맞춘다. label 을 생략하면 방향 버튼만 남는다.
Preview
tsx
<PaginationhasPrevioushasNextpreviousLabel="이전 호"nextLabel="다음 호"/>
속성
| 이름 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| hasPrevious | boolean | false | 이전 방향 활성 여부 |
| hasNext | boolean | false | 다음 방향 활성 여부 |
| previousHref | string | - | 있으면 이전 버튼을 링크로 렌더 |
| nextHref | string | - | 있으면 다음 버튼을 링크로 렌더 |
| onPrevious | () => void | - | 이전 버튼 클릭 핸들러 |
| onNext | () => void | - | 다음 버튼 클릭 핸들러 |
| label | ReactNode | - | 가운데에 두는 현재 위치 표시 |
| previousLabel | string | "이전 페이지" | 이전 버튼 접근성 라벨 |
| nextLabel | string | "다음 페이지" | 다음 버튼 접근성 라벨 |
| accessibilityLabel | string | "페이지네이션" | nav 요소의 aria-label |
| className | string | - | 래퍼 클래스 |