PROJECT/성격 찾기 프로젝트 | PR Me

[FE/BE] React - 페이지네이션 react-js-pagination

콩세 2023. 6. 1. 13:13

지금 프로젝트에서 페이지네이션이 들어갈 부분은 딱 한 곳.

⬆️이 부분이다.

 

위 사진은 내가 피그마로 대강 잡아본 레이아웃과 디자인이고

페이징도 대강 이쪽에 들어갈 예정이다~ 정도로 표시해둔 모습니다^0^

 

이 페이지의 주요 기능은 페이지네이션이고

처음 레이아웃을 잡을땐 한 페이지에 7개로 잡았는데

막상 만들어보니 5개가 딱 적당하고 좋았다.

 

페이지네이션은 서버에 들어가는 데이터가 있어야되고,

그래서 백단에서 만드는게 용이하겠다는 생각이라서

일단 나는 API를 넣기 전까지의 틀을 만들기로 했다.

 

API 넣은 최종본은 다음에 또 포스팅 할 예정💡


가장 하단의 페이징(<12345>) 완성 모습은!


 

페이지네이션 패키지를 사용하면 페이징을 쉽게 만들 수 있다고 해서

npm install react-js-pagination

react-js-pagination을 설치했다.


// Pagination.jsx

import Pagination from "react-js-pagination";

const Paging = () => {
    const [page, setPage] = useState(1);

    const handlePageChange = (page) => {
        setPage(page);
    };

    return (
        <Pagination
        // 현재 페이지
        activePage={page}

        // 한 페이지당 보여줄 리스트 아이템 개수
        itemsCountPerPage={5}

        // 총 아이템의 개수
        totalItemsCount={450}

        // paginator 내에서 보여줄 페이지의 범위
        pageRangeDisplayed={5}

        // <이전>을 나타낼 텍스트 (prev, < ...)
        prevPageText={"‹"}

        // <다음>을 나타낼 텍스트 (next, > ...)
        nextPageText={"›"}

        // 페이지가 바뀔 때 핸들링해줄 함수
        onChange={handlePageChange}
        />
    );
};

export default Paging;
// Friends.jsx

import Pagination from '../components/Pagination';

<div>
    <Pagination
      activePage={currentPage}
      itemsCountPerPage={itemsPerPage}
      totalItemsCount={friendsData.length}
      onChange={handlePageChange}
    />
</div>

패키지 강추🥰