Utvikling av Søkefunksjonalitet
Teori
Før implementering av søkefunksjonalitet er det viktig å forstå disse klient-hookene.
useSearchParams;- Gir tilgang til gjeldende URL-parametere;
- Eksempel: For URL-en
/dashboard/invoices?page=1&query=pending, gir den{page: '1', query: 'pending'}.
usePathname;- Leser gjeldende URL-sti;
- Eksempel: For ruten
domain/dashboard/invoices, returnererusePathname"/dashboard/invoices".
useRouter.- Forenkler navigering mellom ruter i klientkomponenter og tilbyr flere metoder.
Oversikt over implementeringstrinn:
- Fange opp brukerinput;
- Oppdatere URL med søkeparametere;
- Holde URL synkronisert med inndatafeltet;
- Oppdatere tabellen for å gjenspeile søkespørringen.
Tilbake til prosjektet
1. Fange brukerinput
- Åpne
Search-komponenten (app/ui/search.tsx); - Observer bruken av
'use client', som indikerer at event-lyttere og hooks er tilgjengelige; - Bruk
handleSearch-funksjonen, som utløses ved hver endring i inputfeltet.
Etter implementering, åpne utviklerkonsollen i nettleseren din. All tekst som skrives inn i inputfeltet skal vises i nettleserens konsoll.
2. Oppdater URL-en med søkeparametere
- Importer
useSearchParams-hooken fra'next/navigation'og tildel den til en variabel; - Inne i
handleSearch-funksjonen, opprett en ny instans avURLSearchParamsved å bruke den tidligere definerte variabelen (searchParams). Dette verktøyet gir metoder for å manipulere spørringsparametere i URL-en; - Angi parameterstrengen basert på brukerens inndata. Hvis inndatafeltet er tomt, slett det;
- Bruk
useRouterogusePathname-hookene fra'next/navigation'og brukreplace-metoden frauseRouter()inne ihandleSearch.${pathname}representerer gjeldende sti, for eksempel"/dashboard/invoices";- Når brukeren skriver i søkefeltet, konverterer
params.toString()inndata til et URL-vennlig format; replace(${pathname}?${params.toString()})oppdaterer URL-en med brukerens søkedata (for eksempel/dashboard/invoices?query=qwerty).
URL-en oppdateres uten sideoppdatering, takket være Next.js sin klient-side navigasjon.
Etter implementering vil all tekst som skrives inn i feltet gjenspeiles i URL-en.
3. Hold URL-en synkronisert med inndatafeltet
For å sikre at inndatafeltet samsvarer med URL-en og fylles ut når det deles, bruk defaultValue ved å lese fra searchParams.
4. Oppdater tabellen for å gjenspeile søkespørringen
Til slutt oppdaterer vi Table-komponenten for å gjenspeile søkespørringen. Sidekomponenter aksepterer en prop kalt searchParams. Send de nåværende URL-parametrene til <Table>-komponenten.
Husk å fjerne kommentaren på Table-komponenten.
Supert! Du har nå lagt til søkefunksjonalitet i appen din. Prøv det ut – fungerer det? 😊
I neste kapittel ser vi nærmere på paginering, siden kun 6 fakturaer vises på siden nå.
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
Utvikling av Søkefunksjonalitet
Sveip for å vise menyen
Teori
Før implementering av søkefunksjonalitet er det viktig å forstå disse klient-hookene.
useSearchParams;- Gir tilgang til gjeldende URL-parametere;
- Eksempel: For URL-en
/dashboard/invoices?page=1&query=pending, gir den{page: '1', query: 'pending'}.
usePathname;- Leser gjeldende URL-sti;
- Eksempel: For ruten
domain/dashboard/invoices, returnererusePathname"/dashboard/invoices".
useRouter.- Forenkler navigering mellom ruter i klientkomponenter og tilbyr flere metoder.
Oversikt over implementeringstrinn:
- Fange opp brukerinput;
- Oppdatere URL med søkeparametere;
- Holde URL synkronisert med inndatafeltet;
- Oppdatere tabellen for å gjenspeile søkespørringen.
Tilbake til prosjektet
1. Fange brukerinput
- Åpne
Search-komponenten (app/ui/search.tsx); - Observer bruken av
'use client', som indikerer at event-lyttere og hooks er tilgjengelige; - Bruk
handleSearch-funksjonen, som utløses ved hver endring i inputfeltet.
Etter implementering, åpne utviklerkonsollen i nettleseren din. All tekst som skrives inn i inputfeltet skal vises i nettleserens konsoll.
2. Oppdater URL-en med søkeparametere
- Importer
useSearchParams-hooken fra'next/navigation'og tildel den til en variabel; - Inne i
handleSearch-funksjonen, opprett en ny instans avURLSearchParamsved å bruke den tidligere definerte variabelen (searchParams). Dette verktøyet gir metoder for å manipulere spørringsparametere i URL-en; - Angi parameterstrengen basert på brukerens inndata. Hvis inndatafeltet er tomt, slett det;
- Bruk
useRouterogusePathname-hookene fra'next/navigation'og brukreplace-metoden frauseRouter()inne ihandleSearch.${pathname}representerer gjeldende sti, for eksempel"/dashboard/invoices";- Når brukeren skriver i søkefeltet, konverterer
params.toString()inndata til et URL-vennlig format; replace(${pathname}?${params.toString()})oppdaterer URL-en med brukerens søkedata (for eksempel/dashboard/invoices?query=qwerty).
URL-en oppdateres uten sideoppdatering, takket være Next.js sin klient-side navigasjon.
Etter implementering vil all tekst som skrives inn i feltet gjenspeiles i URL-en.
3. Hold URL-en synkronisert med inndatafeltet
For å sikre at inndatafeltet samsvarer med URL-en og fylles ut når det deles, bruk defaultValue ved å lese fra searchParams.
4. Oppdater tabellen for å gjenspeile søkespørringen
Til slutt oppdaterer vi Table-komponenten for å gjenspeile søkespørringen. Sidekomponenter aksepterer en prop kalt searchParams. Send de nåværende URL-parametrene til <Table>-komponenten.
Husk å fjerne kommentaren på Table-komponenten.
Supert! Du har nå lagt til søkefunksjonalitet i appen din. Prøv det ut – fungerer det? 😊
I neste kapittel ser vi nærmere på paginering, siden kun 6 fakturaer vises på siden nå.
I praksis
Takk for tilbakemeldingene dine!