All Articles

Pagination

Pagination

페이징을 구현할 때 마다 필요한 값들과 계산방법이 헷갈려서 정리해두려고 한다.

페이지네이션 구현에 필요한 요소

currentList: 현재 리스트

listCount: 전체 리스트 길이

page: 현재페이지

rowLen: 페이지당 보여줄 아이템 수

pageLen: 보여줄 페이지 수

offset: 아이템 시작 인덱스

offset 구하는 공식: offset = (page-1) * rowLen

현재 페이지 요소 가져오기

nowList() {
    let offset = (this.page-1) * this.rowLen;
    return this.totalList.slice(offset, offset+this.rowLen);
},

마지막 페이지 구하기

let maxPage = Math.ceil(this.totalList.length/this.rowLen);

마지막 페이지를 초과하거나 1페이지 아래로 접근했을 경우 페이지 재설정하기

setPage(page) {
    let maxPage = Math.ceil(this.exclList.length/this.rowLen);
    if (page > maxPage) page = maxPage;
    if (page < 1) page = 1;
    this.page = page;
},