Õppige, kuidas rakendada Reacti laisklaadimist ja komponentide koodijagamist, et oluliselt parandada rakenduse jõudlust, kasutajakogemust ja esmast laadimisaega.
Reacti laisklaadimine: jõudluse parandamine komponentide koodijagamisega
Tänapäeva veebiarenduse maastikul on jõudlus esmatähtis. Kasutajad ootavad kiireid laadimisaegu ja sujuvat interaktsiooni. Suured JavaScripti paketid, eriti keerulistes Reacti rakendustes, võivad oluliselt mõjutada esmast laadimisaega ja üldist kasutajakogemust. Üks võimas tehnika selle probleemi lahendamiseks on laisklaadimine (lazy loading), täpsemalt komponentide koodijagamine. See artikkel pakub põhjalikku juhendit Reacti laisklaadimise mõistmiseks ja rakendamiseks, kasutades React.lazy
ja Suspense
'i.
Mis on laisklaadimine ja koodijagamine?
Laisklaadimine, tuntud ka kui nõudmisel laadimine, on tehnika, mis lükkab ressursside (meie puhul Reacti komponentide) laadimise edasi hetkeni, mil neid tegelikult vaja läheb. Selle asemel, et kogu rakenduse kood korraga sisse laadida, laaditakse esialgu ainult olulised osad ja ülejäänud kood laaditakse asünkroonselt, kui kasutaja navigeerib konkreetsele marsruudile või suhtleb teatud komponendiga. See vähendab oluliselt esialgse paketi suurust ja parandab interaktiivsuse aega (TTI).
Koodijagamine on protsess, mille käigus jagatakse rakenduse kood väiksemateks, paremini hallatavateks tükkideks (pakettideks). Neid pakette saab seejärel laadida iseseisvalt ja nõudmisel. Reacti laisklaadimine kasutab koodijagamist, et laadida komponente ainult siis, kui neid on vaja.
Laisklaadimise ja koodijagamise eelised
- Parem esmane laadimisaeg: Esialgse paketi suuruse vähendamine tähendab, et veebilehitseja laadib ja pargib alguses vähem JavaScripti, mis tulemuseks on kiirem lehe laadimisaeg. See on eriti oluline aeglasema võrguühenduse või seadmega kasutajatele.
- Parem kasutajakogemus: Kiiremad laadimisajad viivad reageerivama ja meeldivama kasutajakogemuseni, vähendades põrkemäära ja suurendades kasutajate kaasatust.
- Vähenenud ressursikulu: Ainult vajaliku koodi laadimine vähendab rakenduse mälukasutust, mis on eriti kasulik mobiilseadmetele.
- Parem SEO: Otsingumootorid eelistavad kiire laadimisajaga veebisaite, mis võib parandada teie veebisaidi positsiooni otsingutulemustes.
Reacti laisklaadimise rakendamine React.lazy
ja Suspense
'iga
React pakub sisseehitatud mehhanismi komponentide laisklaadimiseks, kasutades React.lazy
ja Suspense
'i. React.lazy
võimaldab teil dünaamiliselt importida komponenti, samal ajal kui Suspense
pakub viisi varu-kasutajaliidese kuvamiseks komponendi laadimise ajal.
1. samm: DĂĽnaamiline importimine React.lazy
'ga
React.lazy
võtab argumendiks funktsiooni, mis kutsub välja import()
. Funktsioon import()
on dĂĽnaamiline import, mis tagastab Promise'i, mis laheneb mooduliks, mis sisaldab komponenti, mida soovite laisalt laadida.
import React, { lazy, Suspense } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
Selles näites ei laadita MyComponent
'i enne, kui see renderdatakse. Lause import('./MyComponent')
impordib komponendi dĂĽnaamiliselt failist ./MyComponent
. Pange tähele, et failitee on suhteline praeguse faili suhtes.
2. samm: Suspense
'i kasutamine laadimisolekute haldamiseks
Kuna laisklaadimine hõlmab komponentide asünkroonset laadimist, on teil vaja viisi laadimisoleku haldamiseks ja varu-kasutajaliidese kuvamiseks komponendi laadimise ajal. Siin tuleb appi Suspense
. Suspense
on Reacti komponent, mis võimaldab teil selle laste renderdamist "peatada", kuni nad on valmis. See võtab vastu fallback
'i prop'i, mis määrab kasutajaliidese, mida renderdada laste laadimise ajal.
import React, { lazy, Suspense } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
function App() {
return (
Laadimine...
Selles näites ümbritseb Suspense
komponent MyComponent
'i. Ajal, mil MyComponent
laeb, renderdatakse fallback
'i prop (
). Kui MyComponent
on laetud, asendab see varu-kasutajaliidese.
Näide: marsruudi laisklaadimine React Routeri rakenduses
Laisklaadimine on eriti kasulik marsruutide jaoks React Routeri rakenduses. Saate laisalt laadida terveid lehti või rakenduse osi, parandades oma veebisaidi esmast laadimisaega.
import React, { lazy, Suspense } from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
const Home = lazy(() => import('./pages/Home'));
const About = lazy(() => import('./pages/About'));
const Contact = lazy(() => import('./pages/Contact'));
function App() {
return (
Laadimine...