Legge til paginering i en Next.js-app
For å la brukere navigere mellom ulike sider og vise alle fakturaer, implementeres paginering ved hjelp av URL-parametere, på samme måte som søkefunksjonaliteten.
Tilbake til prosjektet
Steg 1
- Hvis du navigerer til
Pagination-komponenten, ser du at det er en klientkomponent. For å unngå å eksponere databasehemmeligheter, bør du unngå å hente data på klientsiden. Hent i stedet dataene på serveren og send dem som en prop til komponenten; - I
app/dashboard/invoices/page.tsx, importer en ny funksjon kaltfetchInvoicesPagesog send søkespørringen frasearchParamssom et argument:fetchInvoicesPagesberegner totalt antall sider basert på søkespørringen. For eksempel, hvis det finnes 12 samsvarende fakturaer og 6 vises per side, vil totalt antall sider være 2.
- Send
totalPages-propen til<Pagination/>-komponenten.
Steg 2
- Naviger til
app/ui/invoices/pagination.tsx; - Importer hookene
usePathnameoguseSearchParams; - Bruk disse hookene for å hente gjeldende side og sette ny side;
- Fjern kommentaren fra koden i denne komponenten.
Merk
Applikasjonen din kan midlertidig slutte å fungere ettersom logikken for
<Pagination/>ennå ikke er implementert. Vi vil arbeide med dette senere.
Steg 3
- Inne i
<Pagination>-komponenten, opprett en ny funksjon kaltcreatePageURL; - På samme måte som med søkefunksjonaliteten, bruk
URLSearchParamsfor å sette nytt sidenummer; - Bruk
pathNamefor å konstruere URL-strengen; - Fjern kommentaren fra variabelen
allPages.
Steg 4
Siste steg – når brukeren skriver inn et nytt søk, er det viktig å tilbakestille sidenummeret til 1. For å oppnå dette, oppdater handleSearch-funksjonen i app/ui/search.tsx.
I praksis
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 2.08
Legge til paginering i en Next.js-app
Sveip for å vise menyen
For å la brukere navigere mellom ulike sider og vise alle fakturaer, implementeres paginering ved hjelp av URL-parametere, på samme måte som søkefunksjonaliteten.
Tilbake til prosjektet
Steg 1
- Hvis du navigerer til
Pagination-komponenten, ser du at det er en klientkomponent. For å unngå å eksponere databasehemmeligheter, bør du unngå å hente data på klientsiden. Hent i stedet dataene på serveren og send dem som en prop til komponenten; - I
app/dashboard/invoices/page.tsx, importer en ny funksjon kaltfetchInvoicesPagesog send søkespørringen frasearchParamssom et argument:fetchInvoicesPagesberegner totalt antall sider basert på søkespørringen. For eksempel, hvis det finnes 12 samsvarende fakturaer og 6 vises per side, vil totalt antall sider være 2.
- Send
totalPages-propen til<Pagination/>-komponenten.
Steg 2
- Naviger til
app/ui/invoices/pagination.tsx; - Importer hookene
usePathnameoguseSearchParams; - Bruk disse hookene for å hente gjeldende side og sette ny side;
- Fjern kommentaren fra koden i denne komponenten.
Merk
Applikasjonen din kan midlertidig slutte å fungere ettersom logikken for
<Pagination/>ennå ikke er implementert. Vi vil arbeide med dette senere.
Steg 3
- Inne i
<Pagination>-komponenten, opprett en ny funksjon kaltcreatePageURL; - På samme måte som med søkefunksjonaliteten, bruk
URLSearchParamsfor å sette nytt sidenummer; - Bruk
pathNamefor å konstruere URL-strengen; - Fjern kommentaren fra variabelen
allPages.
Steg 4
Siste steg – når brukeren skriver inn et nytt søk, er det viktig å tilbakestille sidenummeret til 1. For å oppnå dette, oppdater handleSearch-funksjonen i app/ui/search.tsx.
I praksis
Takk for tilbakemeldingene dine!