React Suspense un Error Boundaries: Uzlabota ielādes un kļūdu apstrāde | MLOG | MLOG}> ); }; export default App;

Šajā piemērā:

Error Boundaries izpratne

Error Boundaries ir React komponenti, kas uztver JavaScript kļūdas jebkurā to bērnu komponentu kokā, reģistrē šīs kļūdas un parāda rezerves lietotāja saskarni, nevis sabojā visu lietotni. Tie nodrošina veidu, kā eleganti apstrādāt negaidītas kļūdas, uzlabojot lietotāja pieredzi un padarot jūsu lietotni noturīgāku.

Error Boundaries galvenie jēdzieni

Error Boundaries pamata ieviešana

Šeit ir vienkāršs piemērs, kā izveidot Error Boundary:


import React, { Component } from 'react';

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

  static getDerivedStateFromError(error) {
    // Atjaunināt stāvokli, lai nākamais renderējums parādītu rezerves lietotāja saskarni.
    return { hasError: true };
  }

  componentDidCatch(error, errorInfo) {
    // Varat arī reģistrēt kļūdu kļūdu ziņošanas pakalpojumā
    console.error(error, errorInfo);
  }

  render() {
    if (this.state.hasError) {
      // Jūs varat renderēt jebkuru pielāgotu rezerves lietotāja saskarni
      return 

Something went wrong.

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

Šajā piemērā:

Error Boundaries izmantošana

Lai izmantotu komponentu `ErrorBoundary`, vienkārši aptveriet komponentus, kurus vēlaties aizsargāt, ar to:


import React from 'react';
import ErrorBoundary from './ErrorBoundary';

const MyComponent = () => {
  // Simulēt kļūdu
  throw new Error('An error occurred!');
};

const App = () => {
  return (
    
      
    
  );
};

export default App;

Šajā piemērā, ja komponentā `MyComponent` rodas kļūda, komponents `ErrorBoundary` uztvers kļūdu un parādīs rezerves lietotāja saskarni.

Suspense un Error Boundaries apvienošana

Suspense un Error Boundaries var apvienot, lai nodrošinātu spēcīgu un visaptverošu kļūdu apstrādes stratēģiju asinhronām operācijām. Aptverot komponentus, kas var apturēt, gan ar Suspense, gan ar Error Boundaries, varat eleganti apstrādāt gan ielādes stāvokļus, gan negaidītas kļūdas.

Suspense un Error Boundaries apvienošanas piemērs


import React, { Suspense } from 'react';
import ErrorBoundary from './ErrorBoundary';

// Simulēt datu iegūšanu (piemēram, no API)
const fetchData = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      // Simulēt veiksmīgu datu iegūšanu
      // resolve({ name: 'John Doe', age: 30 });

      // Simulēt kļūdu datu iegūšanas laikā
      reject(new Error('Failed to fetch user data'));

    }, 2000);
  });
};

// Izveidot resursu, ko Suspense var izmantot
const createResource = (promise) => {
  let status = 'pending';
  let result;
  let suspender = promise().then(
    (r) => {
      status = 'success';
      result = r;
    },
    (e) => {
      status = 'error';
      result = e;
    }
  );

  return {
    read() {
      if (status === 'pending') {
        throw suspender;
      } else if (status === 'error') {
        throw result;
      }

      return result;
    },
  };
};

const userData = createResource(fetchData);

// Komponents, kas nolasa no resursa
const UserProfile = () => {
  const data = userData.read();
  return (
    

Name: {data.name}

Age: {data.age}

); }; const App = () => { return ( Loading user data...}> ); }; export default App;

Šajā piemērā:

Uzlabotas metodes un labākā prakse

Suspense veiktspējas optimizēšana

Pielāgoti Error Boundaries

Varat izveidot pielāgotus Error Boundaries, lai apstrādātu noteiktus kļūdu veidus vai nodrošinātu informatīvākus kļūdu ziņojumus. Piemēram, varat izveidot Error Boundary, kas parāda citu rezerves lietotāja saskarni atkarībā no kļūdas veida, kas radusies.

Servera puses renderēšana (SSR) ar Suspense

Suspense var izmantot ar servera puses renderēšanu (SSR), lai uzlabotu sākotnējo lapas ielādes veiktspēju. Izmantojot SSR, varat iepriekš renderēt lietotnes sākotnējo stāvokli serverī un pēc tam straumēt atlikušo saturu klientam. Suspense ļauj apstrādāt asinhronu datu iegūšanu SSR laikā un parādīt ielādes indikatorus, kamēr dati tiek straumēti.

Dažādu kļūdu scenāriju apstrāde

Apsveriet šos dažādos kļūdu scenārijus un to, kā tos apstrādāt:

Globāla kļūdu apstrāde

Ieviesiet globālu kļūdu apstrādes mehānismu, lai uztvertu kļūdas, kuras neuztver Error Boundaries. To var izdarīt, izmantojot globālu kļūdu apstrādātāju vai aptverot visu lietotni Error Boundary.

Reālās pasaules piemēri un izmantošanas gadījumi

E-komercijas lietotne

E-komercijas lietotnē Suspense var izmantot, lai parādītu ielādes indikatorus, kamēr tiek iegūti produktu dati, un Error Boundaries var izmantot, lai apstrādātu kļūdas, kas rodas norēķinu procesā. Piemēram, iedomājieties lietotāju no Japānas, kas pārlūko tiešsaistes veikalu, kas atrodas Amerikas Savienotajās Valstīs. Produktu attēlu un aprakstu ielāde var aizņemt zināmu laiku. Suspense var parādīt vienkāršu ielādes animāciju, kamēr šie dati tiek iegūti no servera, kas, iespējams, atrodas pusceļā apkārt pasaulei. Ja maksājumu vārteja neizdodas pagaidu tīkla problēmas dēļ (kas ir izplatīta dažādās interneta infrastruktūrās visā pasaulē), Error Boundary varētu parādīt lietotājam draudzīgu ziņojumu, aicinot viņus mēģināt vēlreiz vēlāk.

Sociālo mediju platforma

Sociālo mediju platformā Suspense var izmantot, lai parādītu ielādes indikatorus, kamēr tiek iegūti lietotāju profili un ziņas, un Error Boundaries var izmantot, lai apstrādātu kļūdas, kas rodas, ielādējot attēlus vai videoklipus. Lietotājam, kas pārlūko no Indijas, var būt lēnāks ielādes laiks multividei, kas tiek mitināta serveros Eiropā. Suspense var parādīt vietturi, līdz saturs ir pilnībā ielādēts. Ja noteikta lietotāja profila dati ir bojāti (reti, bet iespējams), Error Boundary var novērst visas sociālo mediju plūsmas sabojāšanu, tā vietā parādot vienkāršu kļūdas ziņojumu, piemēram, "Nevar ielādēt lietotāja profilu".

Informācijas paneļa lietotne

Informācijas paneļa lietotnē Suspense var izmantot, lai parādītu ielādes indikatorus, kamēr tiek iegūti dati no vairākiem avotiem, un Error Boundaries var izmantot, lai apstrādātu kļūdas, kas rodas, ielādējot diagrammas vai grafikus. Finanšu analītiķis Londonā, piekļūstot globālam investīciju informācijas panelim, var ielādēt datus no vairākām biržām visā pasaulē. Suspense var nodrošināt ielādes indikatorus katram datu avotam. Ja vienas biržas API nedarbojas, Error Boundary var parādīt kļūdas ziņojumu, kas ir specifisks šīs biržas datiem, novēršot to, ka viss informācijas panelis kļūst nelietojams.

Secinājums

React Suspense un Error Boundaries ir būtiski rīki noturīgu un lietotājam draudzīgu React lietotņu veidošanai. Izmantojot Suspense, lai pārvaldītu ielādes stāvokļus, un Error Boundaries, lai apstrādātu negaidītas kļūdas, varat uzlabot vispārējo lietotāja pieredzi un vienkāršot izstrādes procesu. Šajā rokasgrāmatā ir sniegts visaptverošs Suspense un Error Boundaries pārskats, aptverot visu, sākot no pamatjēdzieniem līdz pat uzlabotām metodēm. Ievērojot šajā rakstā izklāstīto labāko praksi, varat veidot spēcīgas un uzticamas React lietotnes, kas var apstrādāt pat visgrūtākos scenārijus.

React turpinot attīstīties, Suspense un Error Boundaries, visticamāk, spēlēs arvien nozīmīgāku lomu mūsdienīgu tīmekļa lietotņu veidošanā. Apgūstot šīs funkcijas, varat būt soli priekšā un nodrošināt izcilu lietotāja pieredzi.