React õppimine ja mõistmine - praktiline õpetus

Optimeeri Reacti komponentide renderdamisjõudlust

Kõik õpetuse videod Reageeri õppima ja mõistma - praktiline õpetus

Rakenduste komponentide renderdamine Reactis võib sageli kaasa tuua tarbetuid jõudlusprobleeme, eriti kui komponente uuendatakse korduvalt, kuigi nende props (omadused) pole muutunud. Siin saad teada, kuidas saad optimeerida oma Reacti rakenduste jõudlust, kasutades Reacti memo funktsiooni. Memo abil saad tagada, et komponente renderdataks ainult siis, kui asjakohased andmed muutuvad. See mitte ainult ei kiirenda kasutajaliidest, vaid parandab ka reageerimiskiirust kasutaja sisendile.

Olulisemad teadmised

  • Memo-funktsioon takistab tarbetuid renderdamisoperatsioone.
  • Komponente renderdatakse uuesti ainult siis, kui nende props muutuvad.
  • Optimeerimine on mõistlik, kui komponendil on keerulised arvutused või alamkomponendid, mis peavad renderdama.

Samm-sammuline juhend

Samm 1: Põhiseadistus

Et alustada komponentide optimeerimist, vajad lihtsat näidet. Kõigepealt loo oma Reacti rakendusse kaks nuppu. Esimene nupp vahetab väärtusi „X“ ja „O“ vahel, samal ajal kui teine nupp väljastab lihtsalt sõnumi konsoolis.

Optimeeri Reacti komponentide renderdamise jõudlust

Allikakoodis defineerid lüliti nupu koos useStatega, et hoida jälgida praegust olekut ja seda iga klõpsu korral muuta.

Optimeeri Reacti komponentide renderdamise jõudlust

Samm 2: Komponentide struktuuri analüüs

Kui jooksutad oma rakendust brauseris ja klõpsad lülitusnupul, näed, et teine nupp konsoolis ikkagi renderdatakse. Põhjus on selles, et React rendib iga oleku muutuse korral uuesti kõik mõjutatud komponendid, isegi kui midagi muutunud pole.

Kuigi teisel nupul pole props, kutsutakse välja selle render-funktsioon, mis pole optimaalne. Soovid, et nupp renderdataks ainult siis, kui see on tõesti vajalik.

Samm 3: Tutvumine memo-ga

Siin tuleb mängu memo. Saad optimeerida nupu komponenti, importides Reactist memo. See tagab, et komponendi render-funktsiooni ei kutsuta enam välja, kui props muutuvad.

Samm 4: Memo kasutamine

Pakkige oma nupu komponent memo sisse, pannes funktsioonikutse ümber nupu komponendi. Nüüd saab komponent renderdada ainult siis, kui props muutuvad.

Kontrollige seejärel, kas optimeerimine töötab. Kui rakendust uuesti laadite ja vahetate lülitusnuppu, ei tohiks nupp enam uuesti renderdada, kui props ei muutu. Saate lisada ka vahepeatusi, et kontrollida, kas render-funktsioon käivitatakse.

Optimeeri Reacti komponentide renderdamise jõudlust

Samm 5: Optimeerimise testimine

Tõhususe testimiseks saate oma nupule edastada täiendavaid props, kuvades lülituse väärtuse nupu komponendis. Lisage loogika, mis muudab nupu teksti lüliti oleku põhjal.

Optimeeri Reacti komponentide renderdamise jõudlust

Kui nüüd rakendust uuesti testite ja vahel nuppude vahel lülitute, märkate, et nupp renderdatakse ainult siis, kui lüliti siseinfo muutub. See demonstreerib, kuidas optimeerimine töötab.

Samm 6: Muudatuste kontrollimine

Kui klõpsate nüüd uuesti lülitusnupul ja lüliti muutub vääralt tõeks, renderdatakse nupu komponent õigesti uuesti, kuna tema props muutuvad lüliti väärtuse edastamise tõttu.

Järeldus

Oled nüüd edukalt rakendanud memo-funktsiooni ja optimeerinud oma nupu komponenti, nii et seda renderdatakse ainult siis, kui see on tõesti vajalik. See on lihtne, kuid efektiivne meetod oma Reacti rakenduse jõudluse optimeerimiseks.

Kokkuvõte

Selles juhendis said teada, kuidas saad memo abil optimeerida oma Reacti komponentide renderdamise jõudlust. Õppisid, millal on mõistlik komponente optimeerida ja kuidas saad render-funktsiooni väljakutsete sagedust vähendada.

Sagedased küsimused

Kuidas töötab mälu Reactis?Memo salvestab komponendi tulemuse ja renderdab seda uuesti ainult siis, kui selle props'id muutuvad.

Millal peaksin kasutama memo funktsiooni?Memo on kasulik komponentidele, mis teevad palju renderdamist või on olemas suurtes rakendustes paljude olekumuutustega.

Kas ma saan memo funktsiooni kasutada iga komponendi puhul?See pole alati vajalik. Kasuta memo funktsiooni seal, kus see oluliselt parandab jõudlust, eriti keerukate komponentide puhul.