⊗jsrtPmHkUDV 18 of 47 menu

Reacti jõudluse optimeerimise konks useDeferredValue

Jõudluse optimeerimise konks useDeferredValue, samuti nagu useTransition, aitab kiirendada graafilise liidese tööd, kuid teeb seda veidi teistmoodi.

Heitke pilk eelmisele õppetükile ja vaadake, kuidas useTransition puhul me mähkisime uuendusfunktsiooni setFilterTerm. Nii et, oleku uuendamise kood ei pruugi alati olla kättesaadav. See võib olla peidetud, näiteks teegis, mille olete ühendanud. Sel juhul saame kasutada konksu useDeferredValue. Siis peame mähkima kas oleku enda või tulemuse, mis arvutatakse selle oleku abil, seeläbi alandades selle prioriteeti.

Analüüsime järgmist tükkikoodi lapsekomponendi ProductList puhul:

import {useDeferredValue} from 'react' function ProductList({ products }) { const deferredProducts = useDeferredValue(products); return ( <ul> {deferredProducts.map((product) => ( <li>{product}</li> ))} </ul> ); }

Pange tähele, et siin me mähkisime useDeferredValue-sse muutuja products enda, mille me võtsime komponendi propsitest. Seejärel kirjutasime tulemuse deferredProducts-i, millega ja edasi töötame:

const deferredProducts = useDeferredValue(products);

Nüüd, kui põhikomponendi kooditükis, mida me vaatlesime eelmisel õppetükil, eemaldada rida:

const [isPending, startTransition] = useTransition();

Ja rida isPending kasutamisega:

{isPending && <p>uuendamine ...</p>}

Ja eemaldada mähis funktsiooni setFilterTerm ümbert, siis saame sama tulemuse, mis eelmisel õppetükil:

function updateFilterHandler(event) { setFilterTerm(event.target.value); }
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu