What is react-paginate?
react-paginate is a React component that helps in creating pagination for your data. It provides a flexible and customizable way to paginate through large sets of data, making it easier to navigate and manage.
What are react-paginate's main functionalities?
Basic Pagination
This code demonstrates a basic usage of react-paginate. It sets up a pagination component with labels for previous and next buttons, a break label, and specifies the number of pages to display. The handlePageClick function logs the selected page number.
import ReactPaginate from 'react-paginate';
function PaginationComponent() {
const handlePageClick = (data) => {
console.log(data.selected);
};
return (
<ReactPaginate
previousLabel={'previous'}
nextLabel={'next'}
breakLabel={'...'}
breakClassName={'break-me'}
pageCount={10}
marginPagesDisplayed={2}
pageRangeDisplayed={5}
onPageChange={handlePageClick}
containerClassName={'pagination'}
subContainerClassName={'pages pagination'}
activeClassName={'active'}
/>
);
}
Custom Styling
This example shows how to apply custom styling to the pagination component by importing a CSS file and setting custom class names for the container, sub-container, and active page.
import ReactPaginate from 'react-paginate';
import './pagination.css';
function CustomStyledPagination() {
const handlePageClick = (data) => {
console.log(data.selected);
};
return (
<ReactPaginate
previousLabel={'previous'}
nextLabel={'next'}
breakLabel={'...'}
breakClassName={'break-me'}
pageCount={10}
marginPagesDisplayed={2}
pageRangeDisplayed={5}
onPageChange={handlePageClick}
containerClassName={'custom-pagination'}
subContainerClassName={'pages custom-pagination'}
activeClassName={'active'}
/>
);
}
Controlled Pagination
This example demonstrates a controlled pagination component where the current page state is managed using React's useState hook. The forcePage prop is used to control the current page programmatically.
import React, { useState } from 'react';
import ReactPaginate from 'react-paginate';
function ControlledPagination() {
const [currentPage, setCurrentPage] = useState(0);
const handlePageClick = (data) => {
setCurrentPage(data.selected);
};
return (
<div>
<ReactPaginate
previousLabel={'previous'}
nextLabel={'next'}
breakLabel={'...'}
breakClassName={'break-me'}
pageCount={10}
marginPagesDisplayed={2}
pageRangeDisplayed={5}
onPageChange={handlePageClick}
containerClassName={'pagination'}
subContainerClassName={'pages pagination'}
activeClassName={'active'}
forcePage={currentPage}
/>
<p>Current Page: {currentPage + 1}</p>
</div>
);
}
Other packages similar to react-paginate
rc-pagination
rc-pagination is a pagination component for React that provides a similar set of features to react-paginate. It is highly customizable and supports various pagination styles. Compared to react-paginate, rc-pagination offers more built-in styles and configurations but may require more setup for custom designs.
react-js-pagination
react-js-pagination is another React pagination component that offers a straightforward API for implementing pagination. It is simpler than react-paginate and may be easier to use for basic pagination needs. However, it might lack some of the advanced customization options available in react-paginate.
material-ui-pagination
material-ui-pagination is a pagination component designed to work seamlessly with Material-UI. It provides a Material Design look and feel, making it a good choice for projects already using Material-UI. Compared to react-paginate, it offers a more integrated experience with Material-UI but may not be as flexible for non-Material-UI projects.
react-paginate
A ReactJS component to render a pagination.
By installing this component and writing only a little bit of CSS you can obtain this :
or
Getting started:
Install:
npm install react-paginate
To load the component:
var ReactPaginate = require("react-paginate");
To run tests:
npm test
To run the example:
Get the component:
git clone git@github.com:AdeleD/react-paginate.git
Install:
cd react-paginate
make install
Start the server:
make serve
See the result:
Open your browser and go to http://localhost:3000/
Using it into your own project:
To know how to use react-paginate into your own projet, you can read the code of the example into the folder : sample/sample.jsx
.
You will understand how to make react-paginate work with a list of objects.