Uzziniet, kā ieviest React 'lazy loading' ar komponentu koda sadalīšanu, lai krasi uzlabotu lietojumprogrammas veiktspēju, lietotāja pieredzi un sākotnējo ielādes laiku.
React 'Lazy Loading': veiktspējas uzlabošana ar komponentu koda sadalīšanu
Mūsdienu tīmekļa izstrādes vidē veiktspēja ir vissvarīgākā. Lietotāji sagaida ātru ielādes laiku un plūstošu mijiedarbību. Lieli JavaScript saiņi, īpaši sarežģītās React lietojumprogrammās, var ievērojami ietekmēt sākotnējo ielādes laiku un kopējo lietotāja pieredzi. Viena spēcīga tehnika, kā to risināt, ir 'lazy loading' jeb slinkā ielāde, konkrētāk – komponentu koda sadalīšana. Šis raksts sniedz visaptverošu ceļvedi, kā izprast un ieviest React 'lazy loading', izmantojot React.lazy
un Suspense
.
Kas ir 'Lazy Loading' un koda sadalīšana?
'Lazy loading', pazīstama arī kā ielāde pēc pieprasījuma, ir tehnika, kas atliek resursu (mūsu gadījumā – React komponentu) ielādi līdz brīdim, kad tie ir patiešām nepieciešami. Tā vietā, lai ielādētu visu lietojumprogrammas kodu uzreiz, sākotnēji tiek ielādētas tikai būtiskākās daļas, bet atlikušais kods tiek ielādēts asinhroni, kad lietotājs pāriet uz noteiktu maršrutu vai mijiedarbojas ar konkrētu komponentu. Tas ievērojami samazina sākotnējā saiņa lielumu un uzlabo laiku līdz interaktivitātei (TTI).
Koda sadalīšana ir process, kurā jūsu lietojumprogrammas kods tiek sadalīts mazākos, vieglāk pārvaldāmos gabalos (saiņos). Šos saiņus pēc tam var ielādēt neatkarīgi un pēc pieprasījuma. React 'lazy loading' izmanto koda sadalīšanu, lai ielādētu komponentus tikai tad, kad tie ir nepieciešami.
'Lazy Loading' un koda sadalīšanas priekšrocības
- Uzlabots sākotnējais ielādes laiks: Samazinot sākotnējā saiņa lielumu, pārlūkprogramma lejupielādē un parsē mazāk JavaScript koda, tādējādi nodrošinot ātrāku lapas ielādi. Tas ir īpaši svarīgi lietotājiem ar lēnāku interneta savienojumu vai ierīcēm.
- Uzlabota lietotāja pieredze: Ātrāks ielādes laiks nodrošina atsaucīgāku un patīkamāku lietotāja pieredzi, samazinot atlēcienu skaitu un palielinot lietotāju iesaisti.
- Samazināts resursu patēriņš: Ielādējot tikai nepieciešamo kodu, tiek samazināts lietojumprogrammas atmiņas patēriņš, kas ir īpaši noderīgi mobilajām ierīcēm.
- Labāka SEO: Meklētājprogrammas dod priekšroku vietnēm ar ātru ielādes laiku, kas var potenciāli uzlabot jūsu vietnes pozīciju meklēšanas rezultātos.
React 'Lazy Loading' ieviešana ar React.lazy
un Suspense
React nodrošina iebūvētu mehānismu komponentu slinkajai ielādei, izmantojot React.lazy
un Suspense
. React.lazy
ļauj dinamiski importēt komponentu, savukārt Suspense
nodrošina veidu, kā parādīt rezerves lietotāja saskarni (fallback UI), kamēr komponents tiek ielādēts.
1. solis: Dinamiskie importi ar React.lazy
React.lazy
pieņem funkciju, kas izsauc import()
. Funkcija import()
ir dinamisks imports, kas atgriež solījumu (Promise), kurš izpildās ar moduli, kas satur komponentu, kuru vēlaties slinki ielādēt.
import React, { lazy, Suspense } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
Šajā piemērā MyComponent
netiek ielādēts, kamēr tas netiek renderēts. Izteiksme import('./MyComponent')
dinamiski importē komponentu no ./MyComponent
faila. Ievērojiet, ka ceļš ir relatīvs attiecībā pret pašreizējo failu.
2. solis: Suspense
izmantošana ielādes stāvokļu apstrādei
Tā kā slinkā ielāde ietver asinhronu komponentu ielādi, jums ir nepieciešams veids, kā apstrādāt ielādes stāvokli un parādīt rezerves lietotāja saskarni, kamēr komponents tiek ielādēts. Šeit palīdz Suspense
. Suspense
ir React komponents, kas ļauj jums "apturēt" tā bērnu renderēšanu, līdz tie ir gatavi. Tas pieņem fallback
rekvizītu (prop), kas norāda lietotāja saskarni, ko renderēt, kamēr bērni tiek ielādēti.
import React, { lazy, Suspense } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
function App() {
return (
Ielādē...
Šajā piemērā Suspense
komponents aptver MyComponent
. Kamēr MyComponent
ielādējas, tiks renderēts fallback
rekvizīts (
). Kad MyComponent
būs ielādēts, tas aizstās rezerves lietotāja saskarni.
Piemērs: Maršruta slinkā ielāde 'React Router' lietojumprogrammā
Slinkā ielāde ir īpaši noderīga maršrutiem 'React Router' lietojumprogrammā. Jūs varat slinki ielādēt veselas lapas vai lietojumprogrammas sadaļas, uzlabojot savas vietnes sākotnējo ielādes laiku.
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 (
Ielādē...