⊗jsrtPmHkUDV 18 of 47 menu

Performancesoptimering hook useDeferredValue i React

Performancesoptimeringen hook useDeferredValue, ligesom useTransition, hjælper med at fremskynde grafisk grænseflades arbejde, men gør det på en lidt anden måde.

Kig på den forrige lektion og se, hvordan vi i tilfældet med useTransition indpakkede opdateringsfunktionen setFilterTerm. Nå, koden til opdatering af state er ikke altid tilgængelig. Den kan være skjult, for eksempel i et bibliotek, som du har tilføjet. I dette tilfælde kan vi bruge hooket useDeferredValue. Så er vi nødt til at indpakke enten selve state eller resultatet, beregnet ved hjælp af denne state, og derved nedsætte dens prioritet.

Lad os analysere følgende stykke kode fra barnekomponentet ProductList:

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

Bemærk, at her indpakkede vi i useDeferredValue selve variablen products, som vi tog fra komponentets props. Derefter gemte vi resultatet i deferredProducts, som vi vil arbejde videre med:

const deferredProducts = useDeferredValue(products);

Hvis vi nu i stykket kode fra hovedkomponentet, som vi betragtede i forrige lektion, fjerner linjen:

const [isPending, startTransition] = useTransition();

Og linjen med brugen af isPending:

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

Og samtidig fjerne indpakningen fra funktionen setFilterTerm, så får vi det samme resultat som i forrige lektion:

function updateFilterHandler(event) { setFilterTerm(event.target.value); }
Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis