⊗jsrtPmHkUDV 18 of 47 menu

Naudojimo atidėtos vertės (useDeferredValue) našumo optimizavimo kabliukas React

Naudojimo atidėtos vertės (<useDeferredValue>) našumo optimizavimo kabliukas, taip pat kaip ir useTransition, padeda pagreitinti grafinės sąsajos veikimą, bet tai daro šiek tiek kitaip.

Pažvelkite į praeitą pamoką ir pamatysite, kaip su useTransition mes apgaubėme atnaujinimo funkciją setFilterTerm. Taigi, būsenos atnaujinimo kodas gali būti ne visada prieinamas. Jis gali būti paslėptas, pavyzdžiui, bibliotekoje, kurią prijungėte. Tokiu atveju mes galime pasinaudoti kabluku useDeferredValue. Tada mums reikia apgaubti arba pačią būseną, arba rezultatą, apskaičiuotą naudojant šią būseną, taip sumažinant jos pirmumą.

Išanalizuokime šį vaikiniio komponento ProductList kodo fragmentą:

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

Atkreipkite dėmesį, kad čia mes apgaubėme useDeferredValue pačią kintamąją products, kurią paėmėme iš komponento propsų. Tada rezultatą įrašėme į deferredProducts, su kuria ir dirbsime toliau:

const deferredProducts = useDeferredValue(products);

Dabar, jei pagrindinio komponento kodo fragmente, kurį nagrinėjome praėjoje pamokoje, pašalinsime eilutę:

const [isPending, startTransition] = useTransition();

Ir eilutę su isPending naudojimu:

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

Taip pat nuimti apgaubimą nuo funkcijos setFilterTerm, tada gausime tą patį rezultatą, kaip ir praėjoje pamokoje:

function updateFilterHandler(event) { setFilterTerm(event.target.value); }
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti