Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jsrtPmHkUDV 18 of 47 menu
◀ ▶

Suorituskyvyn optimointihook useDeferredValue Reactissa

Suorituskyvyn optimointihook useDeferredValue, aivan kuten useTransitionkin, auttaa nopeuttamaan graafisen käyttöliittymän toimintaa, mutta tekee sen hieman eri tavalla.

Katsokaa edellistä oppituntia ja katsokaa, kuinka useTransition:n tapauksessa käärimme setFilterTerm päivitysfunktion. No, tilan päivityskoodi ei aina ole saatavilla. Se voi olla piilotettu, esimerkiksi käyttämässäsi kirjastossa. Tässä tapauksessa voimme hyödyntää useDeferredValue -hookkia. Silloin meidän täytyy kääriä joko itse tila tai tällä tilalla laskettu tulos, alentaen sen prioriteettia.

Analysoidaan seuraavaa lasten komponentin ProductList koodinpätkää:

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

Huomaa, että tässä käärimme useDeferredValue:llä itse products -muuttujan, jonka saimme komponentin propsista. Sitten tallensimme tuloksen muuttujaan deferredProducts, joka on se, jota käytämme eteenpäin:

const deferredProducts = useDeferredValue(products);

Jos nyt pääkomponentin koodinpätkässä, jota tarkastelimme edellisellä oppitunnilla, poistamme rivin:

const [isPending, startTransition] = useTransition();

Ja rivin, jossa käytetään isPending:ia:

{isPending && <p>päivitetään ...</p>}

Ja poistamme kääreen funktion setFilterTerm ympäriltä, saamme saman tuloksen kuin edellisellä oppitunnilla:

function updateFilterHandler(event) { setFilterTerm(event.target.value); }
← →
↑
Suomi▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää