Hakutoiminnallisuuden Kehittäminen
Pyyhkäise näyttääksesi valikon
Teoria
Ennen hakutoiminnallisuuden toteuttamista on tärkeää ymmärtää nämä client hookit.
useSearchParams;- Mahdollistaa nykyisten URL-parametrien lukemisen;
- Esimerkki: URL-osoitteessa
/dashboard/invoices?page=1&query=pendingse palauttaa{page: '1', query: 'pending'}.
usePathname;- Lukee nykyisen URL-osoitteen polun;
- Esimerkki: Reitillä
domain/dashboard/invoicesusePathnamepalauttaa"/dashboard/invoices".
useRouter.- Mahdollistaa reittien vaihtamisen client-komponenteissa useilla eri tavoilla.
Toteutusvaiheiden yleiskatsaus:
- Käyttäjän syötteen tallentaminen;
- URL-osoitteen päivittäminen hakuparametreilla;
- URL-osoitteen ja syötekentän synkronointi;
- Taulukon päivittäminen hakukyselyn mukaisesti.
Takaisin projektiin
1. Käyttäjän syötteen tallentaminen
- Avaa
Search-komponentti (app/ui/search.tsx); - Huomioi
'use client'-käytön, joka mahdollistaa tapahtumankuuntelijat ja hookit; - Hyödynnä
handleSearch-funktiota, joka käynnistyy jokaisella syötteen muutoksella.
Toteutuksen jälkeen avaa selaimen kehittäjäkonsoli. Kaikki syöttökenttään kirjoitettu teksti näkyy nyt konsolissa.
2. Päivitä URL hakuehdoilla
- Tuo
useSearchParams-hook osoitteesta'next/navigation'ja aseta se muuttujaan; - Luo
handleSearch-funktion sisällä uusiURLSearchParams-instanssi käyttäen aiemmin määriteltyä muuttujaa (searchParams). Tämä apuluokka tarjoaa menetelmiä URL-kyselyparametrien käsittelyyn; - Aseta parametrimerkkijono käyttäjän syötteen perusteella. Jos syöte on tyhjä, poista se;
- Hyödynnä
useRouter- jausePathname-hookeja osoitteesta'next/navigation'ja käytäreplace-metodiauseRouter()-hookistahandleSearch-funktion sisällä.${pathname}viittaa nykyiseen polkuun, esim."/dashboard/invoices";- Kun käyttäjä kirjoittaa hakukenttään,
params.toString()muuntaa syötteen URL-yhteensopivaan muotoon; replace(${pathname}?${params.toString()})päivittää URL-osoitteen käyttäjän hakutiedoilla (esim./dashboard/invoices?query=qwerty).
URL päivittyy ilman sivun uudelleenlatausta Next.js:n asiakaspuolen navigoinnin ansiosta.
Toteutuksen jälkeen kaikki syötteeseen kirjoitettu teksti näkyy URL-osoitteessa.
3. Pidä URL ja syötekenttä synkronoituna
Jotta syötekenttä vastaa URL:ia ja täyttyy jaettaessa, käytä defaultValue-ominaisuutta lukemalla arvo searchParams-muuttujasta.
4. Päivitä taulukko hakukyselyn mukaisesti
Lopuksi päivitetään Table-komponentti heijastamaan hakukyselyä. Sivukomponentit hyväksyvät propin nimeltä searchParams. Välitä nykyiset URL-parametrit <Table>-komponentille.
Muista poistaa kommentointi Table-komponentilta.
Hienoa! Olet onnistuneesti lisännyt hakutoiminnon sovellukseesi. Kokeile – toimiiko se? 😊
Seuraavassa luvussa perehdytään sivutukseen, sillä tällä hetkellä sivulla näkyy vain 6 laskua.
Käytännössä
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme