Pagination
Click through pages of content, like turning the pages of a book, controlling the flow of your data presentation.
Basic
Pagination is a navigation component that allows users to move through multiple pages. It’s composed of several elements working together to provide a smooth user experience.
Installation
If you hit any issues, make sure you check out the installation guide here.
Composed Components
When you plug this component from the CLI, it autoloads all the composed components. No need to toss 'em in one at a time.
The Pagination's decked out with several components to make it bangin'.
Manual Installation
Sometimes, using the CLI is the way to go, so make sure you install the necessary dependencies for the components you want to use.
Anatomy
Import the components and use them as shown below, adapting the structure to fit each component.
Simple
The simple pagination setup doesn’t display page numbers, using only basic arrow navigation.
Using Collections
Since the pagination list is part of the GridList
primitive, handling collections is easy. Just pass the collections into the PaginationList
using the items
prop.
Preserving Scroll
Sometimes, you need to prevent the page from scrolling to the top when users interact with pagination. You can do this by passing scroll-related props from your routerOptions into the PaginationLink
component.
Inertia.js
When using Inertia.js, you can use the preserveScroll
prop to keep the page from scrolling to the top during pagination interactions.
Next.js
When using Next.js, apply the scroll
prop to stop the page from scrolling to the top when users navigate through pagination.
Remix
When using Remix, you can add the preventScrollReset
prop to prevent the page from scrolling to the top when users interact with pagination.
React Router
If you're using React Router, check out this tutorial for guidance. After that, give it a go on your own. Apologies, I'm not fully up to speed with the latest updates in React Router.
Considering
You might be thinking, "Why not just bake this functionality directly into the Pagination component, right?" But it's not that simple. I tried integrating it into the Pagination setup, but when you start mixing in other functionalities, like those Inertia.js router options, things can get messy. So, I kept it straightforward to avoid any conflicts.
So here's how I roll with it:
I figured it'd be chill, but nah, it ain't cuttin' it. That’s why I’m throwin' this idea your way: toss that option in when you're rockin' the pagination component. Ain’t sayin' it's top shelf, but it’s one way to roll.
Client Side Routing
Make sure you have read Client Side Routing before using this component.