Pagination vs Infinite Scroll
Pagination
Pagination은 여러개의 게시물을 보여주는 곳에서 많이 사용된다. 보통 게시글 목록의 하단의 나타나는 숫자가 pagination이다. 숫자를 눌렀을 때 그 페이지 목록으로 이동한다.
pagination은 api를 이용하여 구현할 수 있다. 물론 직접 코드를 쳐가면서 구현을 할 수 있지만 시간도 많이 걸린다. 또 그만큼 에너지도 소모가 되기 때문에 api를 이용하는 것을 추천한다.
사람들이 많이 이용하는 api는 react-js-pagination을 많이 사용한다.
npm i react-js-pagination
먼저 설치를 해준다.
import React, { useState } from 'react';
import './Pagination.css';
import Pagination from 'react-js-pagination';
const Paging = () => {
const [page, setPage] = useState(1);
const handlePageChange = page => {
setPage(page);
};
return (
<Pagination
activePage={page}
itemsCountPerPage={10}
totalItemsCount={50}
pageRangeDisplayed={5}
prevPageText="‹"
nextPageText="›"
onChange={handlePageChange}
/>
);
};
export default Paging;
먼저, pagination의 속성들을 보면
activePage는 현재 페이지를 나타내준다. 위에 useState로 상태를 관리해준다.
itemsCountPerPage는 한 페이지당 보여줄 리스트들의 갯수를 정해주는 속서이다.
totalItemsCount는 리스트들의 총 갯수를 적는 속성이다.
pageRangeDisplayed는 pagination에서 보여줄 페이지의 범위를 설정해준다.
prevPageText는 이전 페이지를 보여줄 텍스트를 적어준다.
nextPageText는 다음 페이지를 보여줄 텍스트를 보녀준다.
onChange는 페이지가 바낄 떄 실핸되는 함수를 관리 해준다.
onChange 같은 경우 실행이 되었을 때 값을 받아서 setPage로 page의 상태를 바꿔주서 activePage의 값을 바꿔준다.
Infinite Scroll
infinite Scroll은 무한 스크롤로 사용자가 페이지 하단에 도달했을 때, 콘텐츠가 계속 로드되는 사용자 경험(UX) 방식이다. 한 페이지 아래로 스크롤 하면 끝없이 새로운 화면을 보여주게 되고 이로 인해 많은 양의 콘텐츠를 스크롤 할 수 있다.
무한 스크롤도 api가 있다. react-infinite-scroller를 알아보자
yarn add react-infinite-scroller
설치를 해준다.
< InfiniteScroll
pageStart = { 0 }
loadMore = { loadFunc }
hasMore = { true || false }
loader = { < div className = "loader" key = { 0 } > Loading ... < / div > }
>
{ items } // <-- 로드하려는 내용입니다.
< / InfiniteScroll >
보여주고 하는 항목에 InfiniteScroll 로 감싸준다.
pageStart는 로드할 첫 번째 페이지의 번호이다 기본값은 0 이다.
loadMore은 상용자가 더 많은 항목을 요청할 때 실해되는 함수를 넣어준다. 즉, 사용자가 아래로 스크롤 할 때 함수가 실향이 된다.
hasMore은 로드할 항목이 더 있느지에 대한 여부를 묻는 부분이다.
loader는 항목이 로드가 되는 동안 그 항목들을 구성할 리엑트의 구성요소를 적어준다.
Author And Source
이 문제에 관하여(Pagination vs Infinite Scroll), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@saing0813/Pagination-vs-Infinite-Scroll저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)