Suspense-rajat ja suoratoiston prioriteetti
Sijoita Suspense-rajat hallitaksesi, mitkä HTML-osat suoratoistetaan ensin ja milloin varasisällöt vaihtuvat varsinaiseksi sisällöksi.
Suspense-rajat ja suoratoiston prioriteetti on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu React Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. React Academy-kurssilla on yhteensä 4 oppituntia.
Suspense streamauksen jakajana
Suspense-rajat ovat streamauksen hienojakoisuuden perusyksikkö. Jokainen komponenttipuun Suspense-raja muodostaa itsenäisesti streamattavan osion. React voi ratkaista ja streamata kunkin rajan omassa tahdissaan muista rajoista riippumatta.
Shell: nopea, synkroninen sisältö
Shell sisältää kaiken Suspense-rajojen ulkopuolisen sisällön: asettelun, navigoinnin, alatunnisteen ja kaiken synkronisesti saatavilla olevan sisällön. Shell streamataan ensin ja nopeasti, joten käyttäjä näkee sivun rakenteen heti samalla, kun dataa tarvitsevat osiot latautuvat taustalla.
Fallbackit alustavassa HTML:ssä
Kun React streamaa shellin, jokainen Suspense-raja, jonka data ei ole vielä saatavilla, renderöidään fallback-näkymänä — yleensä latausskeletonina tai latausympyränä. Tämä fallback sisältyy alustavaan HTML-vastaukseen, joten käyttäjä näkee latausilmaisimen heti tyhjän tilan sijaan.
Fallbackien ratkaiseminen ja korvaaminen
Kun Suspense-rajan data valmistuu, React streamaa ratkaistun HTML:n ja pienen upotetun komentosarjan. Komentosarja siirtää juuri streamatun sisällön piilotetusta template-elementistä DOM:n oikeaan kohtaan ja korvaa fallbackin ilman koko sivun uudelleenlatausta.
Upotetun komentosarjan malli
React käyttää HTML:n template-elementtiin perustuvaa mallia: ratkaistu Suspense-sisältö streamataan piilotettuun template-elementtiin, minkä jälkeen komentosarja kutsuu Reactin sisäistä funktiota siirtääkseen templatessa olevan sisällön DOM:n oikeaan kohtaan. Näin sisältö voidaan korvata suoraan DOM:ssa ilman JavaScript-kehystä.
Sisäkkäiset Suspense-rajat: itsenäiset aikajanat
Sisäkkäisillä Suspense-rajoilla on toisistaan riippumattomat valmistumisaikataulut. Sisempi Suspense-raja voi valmistua ennen ulompaa rajaa, jolloin React streamaa sisemmän sisällön heti sen valmistuttua riippumatta siitä, onko ulompi raja valmis. Tämä maksimoi datan lataamisen rinnakkaisuuden.
Sijoittelustrategia: mitä sijoitetaan minne
Tehokkaassa Suspense-sijoittelussa hitaat, dataa tarvitsevat komponentit sijoitetaan Suspense-rajojen sisään ja nopeat, staattiset tai synkronisesti saatavilla olevat komponentit niiden ulkopuolelle. Navigointipalkit, staattista tekstiä sisältävät hero-osiot ja alatunnisteet kuuluvat ulkopuolelle. Tuoteluettelot, käyttäjien hallintapaneelit ja kommenttisyötteet kuuluvat sisäpuolelle.
Streamausjärjestys ei välttämättä vastaa dokumentin järjestystä
React streamaa Suspense-rajat niiden valmistuessa, ei välttämättä siinä järjestyksessä, jossa ne esiintyvät dokumentissa. Näkymän alapuolinen osio voi valmistua ennen näkymän yläosan osiota, jos se tarvitsee vähemmän dataa. React huolehtii DOM:iin lisäämisestä oikein streamausjärjestyksestä riippumatta.
Prioriteettivihjeet ja käyttäjän vuorovaikutus
React 18:n valikoiva hydraatio reagoi käyttäjän vuorovaikutukseen: jos käyttäjä napsauttaa Suspense-rajaa tai vie osoittimen sen päälle ennen rajalle tehtyä hydraatiota, React priorisoi kyseisen rajan hydraation. Näin käyttäjän vuorovaikutus tuntuu sujuvalta, vaikka sivun muiden osien hydraatio olisi vielä kesken.
Liian hienojakoisten rajojen välttäminen
Useammat Suspense-rajat tarjoavat enemmän joustavuutta streamaukseen, mutta liian monet rajat lisäävät upotettujen korvauskomentosarjojen aiheuttamaa kuormaa. Käytännöllinen ohje on rajata kokonaisia osioita — kuten näkymän yläosan sisältö, sivupalkki ja näkymän alapuolinen syöte — yksittäisten komponenttien sijaan. Yhdestä kolmeen Suspense-rajaa sivua kohden on yleinen hyvä kompromissi.
Streamauksen vaikutusten mittaaminen Chrome DevToolsilla
Avatkaa Chrome DevToolsin Network-välilehdellä "Preserve log" ja tarkkailkaa vastauksen streamausta: HTML-dokumentti kasvaa osissa. Performance-välilehti näyttää FCP- ja LCP-merkinnät. Verratkaa streamaavaa ja streamaamatonta koontiversiota parannuksen mittaamiseksi. Rajoittakaa yhteysnopeus Fast 3G -tasolle vaikutuksen korostamiseksi.
Suspense-fallback streamattavassa HTML:ssä
Mitä Suspense-rajan fallbackille tapahtuu alustavassa streamattavassa HTML-vastauksessa?
Oppitunnin yhteenveto
Suspense-rajat jakavat React-puun itsenäisesti streamattaviin osioihin. Shell eli Suspensen ulkopuolinen sisältö streamataan ensin, ja keskeneräisten rajojen fallbackit näkyvät heti. Valmis sisältö korvaa fallbackit upotettujen komentosarjojen avulla. Sisäkkäisillä rajoilla on itsenäiset aikajanat. Sijoittakaa rajat osiotasolle streamauksen optimaalisen hienojakoisuuden saavuttamiseksi ja antakaa Reactin prioriteettijärjestelmän hallita vuorovaikutuksen käynnistämää hydraatiojärjestystä.
Opi React tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 88
- Oppitunnit
- 324
Usein kysytyt kysymykset
Onko oppitunti ”Suspense-rajat ja suoratoiston prioriteetti” ilmainen?
Kyllä – oppitunnin ”Suspense-rajat ja suoratoiston prioriteetti” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko React Academy-kurssin, päivitä CoddyKit PROhon. React Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Suspense-rajat ja suoratoiston prioriteetti”?
Sijoita Suspense-rajat hallitaksesi, mitkä HTML-osat suoratoistetaan ensin ja milloin varasisällöt vaihtuvat varsinaiseksi sisällöksi. Harjoittelet React Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni React Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin React Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Suspense-rajat ja suoratoiston prioriteetti”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä React Academy-oppitunnilla?
Kyllä. Jokainen React Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- React 18:n suoratoisto: renderToPipeableStreamin toiminta
- Suspense-rajat ja suoratoiston prioriteetti
- Progressiivinen hydraatio valikoivalla hydraatiolla
- Suoratoiston vaikutuksen mittaaminen: FCP, TTI ja LCP