⊗jsrtPmHkUTr 17 of 47 menu

Huku i Optimizimit të Performancës useTransition në React

Huku i optimizimit të performancës useTransition na lejon të përditësojmë state-et pa bllokuar ndërfaqen grafike.

Me ndihmën e këtij huku ne mund të caktojmë për përditësimin e një state-i prioritet të ulët, që do të lejojë përditësimin e state-ve të tjerë të kenë prioritet të lartë dhe të ekzekutohen pa vonesa.

Si shembull mund të përmendet filtrim i listës rënëse të produkteve gjatë futjes së simboleve nga përdoruesi në fushën e kërkimit. Sigurisht, vetë lista mund të shfaqet me një vonesë, por ne nuk do të dëshironim që simbolet të futeshin në fushën e kërkimit me vonesë.

Le të shohim se si në raste të tilla na mund të ndihmojë huku useTransition. Le të supozojmë se kemi një copë kodi të komponentit kryesor. Le ta analizojmë atë:

import { useTransition } from 'react'; import { useState } from 'react'; function App() { const [isPending, startTransition] = useTransition(); const [filterTerm, setFilterTerm] = useState(''); const filteredProducts = filterProducts(filterTerm); function updateFilterHandler(event) { startTransition(() => { setFilterTerm(event.target.value); }); } return ( <div> <input type="text" onChange={updateFilterHandler} /> <ProductList products={filteredProducts} /> </div> ); }

Këtu shohim dy variabla për useTransition. Variabla isPending përmban një vlerë boolean dhe tregon nëse procesi i përditësimit ka përfunduar, ndërsa startTransition është funksioni që lejon uljen e prioritetit të përditësimit:

const [isPending, startTransition] = useTransition();

Gjithashtu kemi state-in filterTerm, ku ruhet shprehja e futur në fushën e inputit dhe funksionin setFilterTerm për ta vendosur atë:

const [filterTerm, setFilterTerm] = useState('');

Gjatë futjes së simboleve në input çdo herë thirret funksioni updateFilterHandler, ku ndodh përditësimi i filterTerm. Pikërisht këtu ne përdorim hukun tonë useTransition, duke mbështjellë funksionin e vendosjes setFilterTermstartTransition si më poshtë:

function updateFilterHandler(event) { startTransition(() => { setFilterTerm(event.target.value); }); }

Kështu, ne kemi caktuar për përditësimin e state-it filterTerm prioritet të ulët dhe fusha jonë e inputit do të mbetet e përgjegjshme.

Me ndihmën e variablës isPending ne mund t'i tregojmë përdoruesit se përditësimi i listës është ende në proces. Le ta shfaqim këtë informacion nën fushën e inputit, derisa lista të përditësohet:

return ( <div> <input type="text" onChange={updateFilterHandler} /> {isPending && <p>Duke u përditësuar ...</p>} <ProductList products={filteredProducts} /> </div> );
Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo