React Lazy Loading: Komponentu koda sadalīŔana optimizētai veiktspējai | MLOG | MLOG ); } export default ImageGallery;

Un Image.js komponents:


import React from 'react';

const Image = ({ src, alt }) => {
  return {alt};
};

export default Image;

Å ajā piemērā katrs attēls ir ietÄ«ts <Suspense> komponentā, tāpēc katram attēlam tiks parādÄ«ts ielādes ziņojums, kamēr tas tiek ielādēts. Tas novērÅ” visas lapas bloķēŔanu, kamēr attēli tiek lejupielādēti.

Padziļinātas metodes un apsvērumi

1. Kļūdu robežas (Error Boundaries)

Izmantojot "lazy loading", ir svarÄ«gi apstrādāt iespējamās kļūdas, kas var rasties ielādes procesā. Kļūdu robežas var izmantot, lai notvertu Ŕīs kļūdas un parādÄ«tu rezerves UI. JÅ«s varat izveidot kļūdu robežas komponentu Ŕādi:


import React, { Component } from 'react';

class ErrorBoundary extends Component {
  constructor(props) {
    super(props);
    this.state = { hasError: false };
  }

  static getDerivedStateFromError(error) {
    // Atjaunina stāvokli, lai nākamajā renderēŔanā parādÄ«tu rezerves UI.
    return { hasError: true };
  }

  componentDidCatch(error, errorInfo) {
    // Varat arÄ« reÄ£istrēt kļūdu kļūdu ziņoÅ”anas servisā
    console.error(error, errorInfo);
  }

  render() {
    if (this.state.hasError) {
      // Varat renderēt jebkādu pielāgotu rezerves UI
      return 

Kaut kas nogāja greizi.

; } return this.props.children; } } export default ErrorBoundary;

Pēc tam ietiniet <Suspense> komponentu ar <ErrorBoundary>:



  Ielādē...}>
    
  


Ja, ielādējot MyComponent, rodas kļūda, <ErrorBoundary> to notvers un parādīs rezerves UI.

2. Servera puses renderēŔana (SSR) un "Lazy Loading"

"Lazy loading" var izmantot arÄ« kopā ar servera puses renderēŔanu (SSR), lai uzlabotu jÅ«su aplikācijas sākotnējo ielādes laiku. Tomēr tas prasa papildu konfigurāciju. Jums bÅ«s jānodroÅ”ina, ka serveris spēj pareizi apstrādāt dinamiskos importus un ka "lazy-loaded" komponenti tiek pareizi hidratēti klienta pusē.

RÄ«ki, piemēram, Next.js un Gatsby.js, nodroÅ”ina iebÅ«vētu atbalstu "lazy loading" un koda sadalīŔanai SSR vidēs, padarot procesu daudz vieglāku.

3. "Lazy-Loaded" komponentu iepriekŔēja ielāde

Dažos gadÄ«jumos jÅ«s varat vēlēties iepriekÅ” ielādēt "lazy-loaded" komponentu, pirms tas patieŔām ir nepiecieÅ”ams. Tas var bÅ«t noderÄ«gi komponentiem, kas, visticamāk, drÄ«z tiks renderēti, piemēram, komponentiem, kas atrodas zem redzamās lapas daļas, bet, visticamāk, tiks ritināti redzamÄ«bas zonā. JÅ«s varat iepriekÅ” ielādēt komponentu, manuāli izsaucot import() funkciju:


import('./MyComponent'); // IepriekÅ” ielādē MyComponent

Tas sāks ielādēt komponentu fonā, tāpēc tas būs pieejams ātrāk, kad tas tiks faktiski renderēts.

4. Dinamiskie importi ar Webpack "maģiskajiem komentāriem"

Webpack "maÄ£iskie komentāri" nodroÅ”ina veidu, kā pielāgot Ä£enerēto koda gabalu nosaukumus. Tas var bÅ«t noderÄ«gi atkļūdoÅ”anai un jÅ«su aplikācijas pakotnes struktÅ«ras analÄ«zei. Piemēram:


const MyComponent = React.lazy(() => import(/* webpackChunkName: "my-component" */ './MyComponent'));

Tas izveidos koda gabalu ar nosaukumu "my-component.js" (vai līdzīgu) vispārēja nosaukuma vietā.

5. IzvairīŔanās no biežākajām kļūdām

Reālās pasaules piemēri un lietoÅ”anas gadÄ«jumi

"Lazy loading" var piemērot dažādiem scenārijiem, lai uzlabotu React aplikāciju veiktspēju. Lūk, daži piemēri:

Piemērs: Starptautiska e-komercijas vietne

Iedomājieties e-komercijas vietni, kas pārdod produktus visā pasaulē. Dažādās valstÄ«s var bÅ«t atŔķirÄ«gas valÅ«tas, valodas un produktu katalogi. Tā vietā, lai ielādētu visus datus par katru valsti uzreiz, jÅ«s varat izmantot "lazy loading", lai ielādētu datus, kas attiecas tikai uz lietotāja atraÅ”anās vietu, kad viņŔ apmeklē vietni.


const CurrencyFormatter = React.lazy(() => import(`./CurrencyFormatter/${userCountry}`))
const ProductCatalog = React.lazy(() => import(`./ProductCatalog/${userCountry}`))

function ECommerceSite() {
  const userCountry = getUserCountry(); // Funkcija, lai noteiktu lietotāja valsti

  return (
    Ielādē saturu jūsu reģionam...}>
      
      
    
  );
}

Noslēgums

"Lazy loading" un komponentu koda sadalīŔana ir spēcÄ«gas metodes React aplikāciju veiktspējas optimizēŔanai. Ielādējot komponentus tikai tad, kad tie ir nepiecieÅ”ami, jÅ«s varat ievērojami samazināt sākotnējo ielādes laiku, uzlabot lietotāja pieredzi un uzlabot savu SEO. React iebÅ«vētie React.lazy() un <Suspense> komponenti atvieglo "lazy loading" ievieÅ”anu jÅ«su projektos. Izmantojiet Ŕīs metodes, lai veidotu ātrākas, atsaucÄ«gākas un saistoŔākas tÄ«mekļa aplikācijas globālai auditorijai.

Atcerieties vienmēr ņemt vērā lietotāja pieredzi, ievieÅ”ot "lazy loading". NodroÅ”iniet informatÄ«vas rezerves lietotāja saskarnes, graciozi apstrādājiet iespējamās kļūdas un rÅ«pÄ«gi analizējiet savas aplikācijas veiktspēju, lai pārliecinātos, ka sasniedzat vēlamos rezultātus. Nebaidieties eksperimentēt ar dažādām pieejām un atrast labāko risinājumu savām specifiskajām vajadzÄ«bām.