Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Hakutoiminnallisuuden Kehittäminen | Edistyneet Next.js-Ominaisuudet ja Optimoinnit
Quizzes & Challenges
Quizzes
Challenges
/
Next.js 14 -osaaminen Modernien Web-sovellusten Rakentamiseen

bookHakutoiminnallisuuden Kehittäminen

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=pending se palauttaa {page: '1', query: 'pending'}.
  • usePathname;
    • Lukee nykyisen URL-osoitteen polun;
    • Esimerkki: Reitillä domain/dashboard/invoices usePathname palauttaa "/dashboard/invoices".
  • useRouter.
    • Mahdollistaa reittien vaihtamisen client-komponenteissa useilla eri tavoilla.

Toteutusvaiheiden yleiskatsaus:

  1. Käyttäjän syötteen tallentaminen;
  2. URL-osoitteen päivittäminen hakuparametreilla;
  3. URL-osoitteen ja syötekentän synkronointi;
  4. Taulukon päivittäminen hakukyselyn mukaisesti.

Takaisin projektiin

1. Käyttäjän syötteen tallentaminen

  1. Avaa Search-komponentti (app/ui/search.tsx);
  2. Huomioi 'use client' -käytön, joka mahdollistaa tapahtumankuuntelijat ja hookit;
  3. 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

  1. Tuo useSearchParams-hook osoitteesta 'next/navigation' ja aseta se muuttujaan;
  2. Luo handleSearch-funktion sisällä uusi URLSearchParams-instanssi käyttäen aiemmin määriteltyä muuttujaa (searchParams). Tämä apuluokka tarjoaa menetelmiä URL-kyselyparametrien käsittelyyn;
  3. Aseta parametrimerkkijono käyttäjän syötteen perusteella. Jos syöte on tyhjä, poista se;
  4. Hyödynnä useRouter- ja usePathname-hookeja osoitteesta 'next/navigation' ja käytä replace-metodia useRouter()-hookista handleSearch-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ä

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain how the useSearchParams hook works in more detail?

How does the Table component use the query and currentPage props to filter data?

What should I do if the search input and URL are not staying in sync?

bookHakutoiminnallisuuden 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=pending se palauttaa {page: '1', query: 'pending'}.
  • usePathname;
    • Lukee nykyisen URL-osoitteen polun;
    • Esimerkki: Reitillä domain/dashboard/invoices usePathname palauttaa "/dashboard/invoices".
  • useRouter.
    • Mahdollistaa reittien vaihtamisen client-komponenteissa useilla eri tavoilla.

Toteutusvaiheiden yleiskatsaus:

  1. Käyttäjän syötteen tallentaminen;
  2. URL-osoitteen päivittäminen hakuparametreilla;
  3. URL-osoitteen ja syötekentän synkronointi;
  4. Taulukon päivittäminen hakukyselyn mukaisesti.

Takaisin projektiin

1. Käyttäjän syötteen tallentaminen

  1. Avaa Search-komponentti (app/ui/search.tsx);
  2. Huomioi 'use client' -käytön, joka mahdollistaa tapahtumankuuntelijat ja hookit;
  3. 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

  1. Tuo useSearchParams-hook osoitteesta 'next/navigation' ja aseta se muuttujaan;
  2. Luo handleSearch-funktion sisällä uusi URLSearchParams-instanssi käyttäen aiemmin määriteltyä muuttujaa (searchParams). Tämä apuluokka tarjoaa menetelmiä URL-kyselyparametrien käsittelyyn;
  3. Aseta parametrimerkkijono käyttäjän syötteen perusteella. Jos syöte on tyhjä, poista se;
  4. Hyödynnä useRouter- ja usePathname-hookeja osoitteesta 'next/navigation' ja käytä replace-metodia useRouter()-hookista handleSearch-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ä

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 2
some-alt