Lazy load React-componenten met lazy() en Suspense, splits routes in React Router, stel afbeeldingen uit met loading="lazy" en voorkom dat uw hoofdafbeelding trager wordt. Met live demo.
Lazy loading in React betekent dat code of afbeeldingen pas worden opgehaald wanneer ze nodig zijn. Wikkel een dynamische import in lazy(), render het component binnen een Suspense-grens met een fallback, en React downloadt het bij de eerste render. Voor afbeeldingen doet het HTML-attribuut loading="lazy" hetzelfde, maar nooit op uw hoofdafbeelding boven de vouw.
Welke lazy loading-tool bij welke taak past
Een grote app-bundle laat elke bezoeker wachten op code die hij misschien nooit gebruikt, zoals een grafiek op een instellingentabblad of een beheerpagina. Lazy loading splitst die code in aparte bestanden die de browser op aanvraag ophaalt. Probeer de demo hieronder en kopieer daarna de patronen voor componenten, routes, afbeeldingen en content die bij scrollen laadt.
Een component dat u kunt renderen. De laadfunctie moet een Promise teruggeven die resolvet naar een object waarvan de default-eigenschap een geldig React-component is, wat een dynamische import() van een default export doet.
Nee. Volgens react.dev worden zowel de teruggegeven Promise als de geresolvede waarde gecachet, dus React roept de laadfunctie niet vaker dan eens aan. De demo op deze pagina laat zien dat het tweede openen direct gebeurt.
lazy() verwacht een default export. Voor een named export koppelt u die binnen de laadfunctie: lazy(() => import("./Charts").then((m) => ({ default: m.SalesChart }))).
Ja, voor de grootste afbeelding op het scherm. web.dev ontdekte dat lazy loading van afbeeldingen boven de vouw Largest Contentful Paint meestal vertraagde, en dat lazy loading van alleen afbeeldingen onder de vouw de databesparing behield zonder die nadelen.
React gooit de reden van de afwijzing tijdens het renderen, en de dichtstbijzijnde error boundary vangt die op. Zonder error boundary verwijdert React volgens react.dev standaard de UI van de app van het scherm.
Het standaardpatroon: één lazy-declaratie bovenaan het bestand, en een Suspense-grens rond de plek waar het rendert.
Het grafiekbestand wordt pas opgehaald wanneer showChart voor het eerst true wordt.
Route-objecten in React Router accepteren een lazy-functie die de eigenschappen van de route teruggeeft, zodat elke pagina een eigen bestand wordt.
De rapportenpagina en haar loader worden pas gedownload wanneer iemand /reports bezoekt.
Browsers ondersteunen lazy loading van afbeeldingen standaard. Markeer afbeeldingen onder de vouw als lazy en geef de hoofdafbeelding een hoge fetchprioriteit.
Breedte en hoogte reserveren ruimte, zodat er niets verschuift als de afbeelding binnenkomt.
Voor content die geen afbeelding is, zoals een kaart of reviewwidget, vertelt een kleine hook u wanneer het vak in beeld komt.
De rootMargin van 200px begint met laden net voordat het vak zichtbaar is; zodra het gezien is, koppelt de observer zich los.
Deze knop rendert een component dat met lazy() is gemaakt. De download is nagebootst en duurt de eerste keer 2 seconden.
Verkoopgrafiek tonen
Verkoopgrafiek verbergen
Grafiekbestand laden...
Grafiekbestand geladen. Verberg het en toon het opnieuw: het verschijnt meteen, omdat React de eerste keer laden heeft gecachet.
Verkoop per maand
Gratis beginnen · Geen creditcard nodig