Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Lataajien Ymmärtäminen | Datan Hakeminen ja Näyttäminen Next.js:ssä
Next.js 14 -osaaminen Modernien Web-sovellusten Rakentamiseen

bookLataajien Ymmärtäminen

Aiemmin käsittelimme sovelluksen dynaamisuuden toteuttamista. Suurten tietomäärien käsittely voi kuitenkin johtaa hitaisiin tietohakuihin, mikä heikentää sovelluksen suorituskykyä.

Seuraavaksi tarkastelemme keinoja parantaa käyttäjäkokemusta hitaiden tietopyyntöjen yhteydessä.

Teoriaa

Voimme hyödyntää laajasti käytettyä tekniikkaa nimeltä Streaming.

Streaming tarkoittaa tiedon lähettämistä pienemmissä osissa sen sijaan, että kaikki lähetettäisiin kerralla. Kuvittele tämä pitkän matkan jakamisena pienempiin askeliin ja etenemisenä askel kerrallaan, kun olet valmis. Tämä auttaa välttämään viiveitä ja mahdollistaa verkkosivun osien käyttämisen ilman, että koko sivun tarvitsee latautua ensin.

Next.js:ssä on kaksi tapaa toteuttaa streaming:

  • Koko verkkosivulle käytetään tiedostoa nimeltä loading.tsx;
  • Tietyille verkkosivun osille käytetään komponenttia <Suspense>.

Tarkastellaan seuraavaksi tarkemmin, miten tämä toimii.

Koko sivun suoratoisto

Luodaan loading.tsx-tiedosto dashboard-kansioon, jotta voidaan lisätä latausanimaatio koko hallintapaneelin sivulle.

  • loading.tsx: Tämä on Next.js:n erikoistiedosto, joka käyttää Suspense. Sen avulla voidaan luoda väliaikainen käyttöliittymä (fallback UI), joka näytetään, kun sivun pääsisältö latautuu;
  • Koska <Sidebar> on staattinen (ei muutu), se näkyy heti. Käyttäjät voivat käyttää sitä, vaikka dynaaminen sisältö latautuu.

Hienoa työtä! Olet juuri käyttänyt suoratoistoa.

Virheen korjaaminen

Nykyinen ongelma on, että loading.tsx-tiedostossa käytetty latausanimaatio koskee kaikkia dashboard-kansion sivuja. Mutta entä jos tarvitsemme jokaiselle sovellussivulle omat käyttöliittymäelementit?

Tämän virheen korjaamiseksi voidaan käyttää reittiryhmiä (Route Groups). Luo (overview)-kansio dashboard-hakemistoon ja siirrä loading.tsx- ja page.tsx-tiedostot sinne.

Näin loading.tsx-tiedosto koskee vain hallintapaneelin sivua ja ongelma ratkeaa.

Reittiryhmät auttavat järjestämään tiedostoja selkeästi muuttamatta verkko-osoitetta. Kun luomme kansion, jonka nimessä on sulkeet (), kansion nimi ei näy verkko-osoitteessa. Esimerkiksi /dashboard/(overview)/page.tsx näkyy vain muodossa /dashboard.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain more about how Suspense works for specific parts of a page?

What are some best practices for using loading.tsx in Next.js?

How do I move files into a route group and what should I watch out for?

Awesome!

Completion rate improved to 2.08

bookLataajien Ymmärtäminen

Pyyhkäise näyttääksesi valikon

Aiemmin käsittelimme sovelluksen dynaamisuuden toteuttamista. Suurten tietomäärien käsittely voi kuitenkin johtaa hitaisiin tietohakuihin, mikä heikentää sovelluksen suorituskykyä.

Seuraavaksi tarkastelemme keinoja parantaa käyttäjäkokemusta hitaiden tietopyyntöjen yhteydessä.

Teoriaa

Voimme hyödyntää laajasti käytettyä tekniikkaa nimeltä Streaming.

Streaming tarkoittaa tiedon lähettämistä pienemmissä osissa sen sijaan, että kaikki lähetettäisiin kerralla. Kuvittele tämä pitkän matkan jakamisena pienempiin askeliin ja etenemisenä askel kerrallaan, kun olet valmis. Tämä auttaa välttämään viiveitä ja mahdollistaa verkkosivun osien käyttämisen ilman, että koko sivun tarvitsee latautua ensin.

Next.js:ssä on kaksi tapaa toteuttaa streaming:

  • Koko verkkosivulle käytetään tiedostoa nimeltä loading.tsx;
  • Tietyille verkkosivun osille käytetään komponenttia <Suspense>.

Tarkastellaan seuraavaksi tarkemmin, miten tämä toimii.

Koko sivun suoratoisto

Luodaan loading.tsx-tiedosto dashboard-kansioon, jotta voidaan lisätä latausanimaatio koko hallintapaneelin sivulle.

  • loading.tsx: Tämä on Next.js:n erikoistiedosto, joka käyttää Suspense. Sen avulla voidaan luoda väliaikainen käyttöliittymä (fallback UI), joka näytetään, kun sivun pääsisältö latautuu;
  • Koska <Sidebar> on staattinen (ei muutu), se näkyy heti. Käyttäjät voivat käyttää sitä, vaikka dynaaminen sisältö latautuu.

Hienoa työtä! Olet juuri käyttänyt suoratoistoa.

Virheen korjaaminen

Nykyinen ongelma on, että loading.tsx-tiedostossa käytetty latausanimaatio koskee kaikkia dashboard-kansion sivuja. Mutta entä jos tarvitsemme jokaiselle sovellussivulle omat käyttöliittymäelementit?

Tämän virheen korjaamiseksi voidaan käyttää reittiryhmiä (Route Groups). Luo (overview)-kansio dashboard-hakemistoon ja siirrä loading.tsx- ja page.tsx-tiedostot sinne.

Näin loading.tsx-tiedosto koskee vain hallintapaneelin sivua ja ongelma ratkeaa.

Reittiryhmät auttavat järjestämään tiedostoja selkeästi muuttamatta verkko-osoitetta. Kun luomme kansion, jonka nimessä on sulkeet (), kansion nimi ei näy verkko-osoitteessa. Esimerkiksi /dashboard/(overview)/page.tsx näkyy vain muodossa /dashboard.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 5
some-alt