⊗jsrtPmHkAMe 15 of 47 menu

API memo in React

Voordat ons die volgende hoek oorweeg, is dit nodig om die nuttige API memo te noem, wat ons help om die herhaalde weergawe van 'n komponent te vermy, as sy props onveranderd bly.

Kom ons verduidelik dit met 'n voorbeeld. Laat ons 'n komponent App skep, waarin twee insettevelde sal wees, waar ons, laat ons sê, 'n naam en van invoer:

return ( <div> <label> naam: <input value={name} onChange={(e) => setName(e.target.value)} /> </label> <br /> <label> van: <input value={surn} onChange={(e) => setSurn(e.target.value)} /> </label> </div> );

Laat ons aan die begin van die komponent state vir hulle byvoeg:

const [name, setName] = useState(''); const [surn, setSurn] = useState('');

Laat ons ook 'n kinderkomponent skep Child.js, laat dit 'n groet uitskryf, waarin die ingevoerde naam vertoon sal word. Ook sal 'n string 'child render' in die konsole uitgevoer word met elke weergawe van hierdie komponent:

function Child({ name }) { console.log('child render'); return <h3>Hallo {name}!</h3>; }

Laat ons Child by die opmaak van die hoof komponent na die laaste insetveld byvoeg en ons sal dit as 'n prop aan hom deurgee:

<Child name={name} />

Laat ons dit in die hoofkomponent inbring:

import Child from './Child';

En nou laat ons die konsole oopmaak en in die insetvelde 'n naam en van intik. Hier sal ons sien dat selfs wanneer ons karakters in die veld vir die van invoer, sal ons kinderkomponent elke keer herteken word. Geen probleme nie, want ons het 'n klein komponent. Maar stel jou voor, as hierdie komponent 'n groot hoeveelheid data vertoon het en terselfdertyd, elke keer herteken word.

En nou laat ons die kinderkomponent in memo toedraai, en kyk hoe die weergawe verander. Eers moet ons memo daarin inbring:

import { memo } from 'react';

Dan skep ons 'n nuwe veranderlike en ken ons ons Child daaraan toe, toegedraai in memo. Ons sal die volgende funksionele uitdrukking kry:

const Child = memo( function Child({ name }) { console.log('child render'); return <h3>Hallo {name}!</h3>; });

Laat ons die konsole oopmaak en weer naam en van in die velde invoer. Nou sien ons dat wanneer ons die van invoer, ons kinderkomponent nie herteken word nie.

Onthou dat dit nie sal werk nie, as met onveranderde props die state, wat deur die komponent gebruik word, sal verander of die konteks, wat veranderinge gebruik.

Neem die kode van die komponent App, wat ons in hierdie les gemaak het, laat net die eerste insetveld daarin oor. Skep 'n React komponent Text, wat 'n paragraaf met die teks 'long text' bevat, en plaas dit in App na die insetveld.

Voeg in die komponent Text die reël console.log('text render'); by. Maak seker dat wanneer karakters in die insetveld ingevoer word, die komponent Text elke keer herteken word.

En nou draai die komponent Text in memo toe. Maak seker dat wanneer karakters in die insetveld ingevoer word, die komponent Text nie weer herteken word nie.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp