티스토리 뷰
웹 프론트엔드 개발자의 기본 소양중 하나는 '게시판 구현'이다. 그 중에서 게시글이 여러개일 경우에는 여러 페이지에 걸쳐서 게시글을 보여줘야 하기 때문에 '페이지네이션' 기법이 필요하다. 1페이지에는 게시글 1번~N번, 2페이지에는 (N+1)번~2N번... 이런 식으로 일정한 기준에 맞춰서 게시글을 보여주는 방법을 말한다. 이를 구현하려면 웹페이지의 특성을 고려하여 몇 가지 파라미터를 미리 정해놓아야 한다. 하나는 한 페이지당 보여줄 게시글의 수(ITEM_PER_PAGE)
와 다른 하나는 한 섹션당 보여줄 페이지의 수(PAGE_PER_SECTION)
이다. 이 글에서 소개할 때는 두 파라미터는 각각 10개와, 5개로 설정하도록 하겠다.
다음으로 고려해야 할 점은 섹션간 이동할 때이다. 총 게시글 수가 100개라면 총 페이지수는 10개(=100 / ITEM_PER_PAGE)
이다.PAGE_PER_SECTION
이 5개이기 때문에 우리는 총 2개의 섹션이 필요하다. 첫 번째 섹션에는 [1,2,3,4,5]
페이지가 보일 것이고, 두 번째 섹션에는 [6,7,8,9,10]
이 보일 것이다. 그리고 섹션 간 이동을 할 때는 좌우 꺽쇠 <,>
로 이동할 수 있다. 첫 번째 섹션에서 두 번째 섹션으로 이동하면 가장 왼쪽에 있는(값이 가장 작은)페이지가 1에서 6으로 바뀌어야 한다. 여기서 나는 가장 왼쪽에 있는 값을 따로 leftMostPage
라는 변수로 관리하여 [leftMost, leftMost+1,leftMost+2,...]
배열의 원소를 PAGE_PER_SECTION
개로 만들었다. 그래서 섹션을 이동할 때('>' 버튼을 누를 때)는 leftMostPage
에 PAGE_PER_SECTION
을 더하거나 빼주면 된다.
'Dev' 카테고리의 다른 글
vue-router를 통한 페이지간 데이터 전달 (0) | 2023.04.24 |
---|---|
vue에서 input을 커스텀 컴포넌트화 시키기 (0) | 2023.04.04 |
vue에서 router내 DOM을 querySelector로 찾지 못하는 문제 (0) | 2023.04.04 |
vue3 modal 모달 열고 닫기 (0) | 2023.03.09 |
vue3 modal transition(모달 트랜지션) (0) | 2023.03.09 |