⊗jsrtPmHkUTr 17 of 47 menu

React-daky useTransition öndürijilik gowulandyryş gogy

Öndürijiligi gowulandyryş gogy useTransition bizä grafik interfeýsi bloklamazdan ýagdaýlary täzelemäge mümkinçilik berýär.

Bu gogyň kömegi bilen biz käbir ýagdaýy täzelemäge pes prioritet belgip bileris, bu bolsa beýleki ýagdaýlaryň täzelenmesiniň ýokary prioritetde bolup, gijikmesiz ýerine ýetirilmegine ýol berer.

Mysal üçin, ulanyjynyň gözleg meýdançasyna nyşan girizen wagtynda harytlaryň açylýan sanawyny süzgüçlemek alyp bolýar. Elbetde, sanawyň özi käbir gijikme bilen görkezilip bilner, ýöne biz gözleg meýdançasyna nyşanlaryň gijikme bilen girizilmegini islemeýäris.

Geliň, ýagdaýlarda gogy useTransition bize nädip kömek edip biljekdigine ser edeliň. Esasy komponentiň bir bölegi bar diýeliň. Geliň ony analiz edeliň:

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> ); }

Bu ýerde biz useTransition üçin iki üýtgeýjäni görýäris. isPending üýtgeýjisi bul maşyny saklaýar we täzelenme prosesiň gutarýandygyny görkezýär, startTransition bolsa täzelenme prioritetini peseltmäge mümkinçilik berýän funksiýadyr:

const [isPending, startTransition] = useTransition();

Şeýle-de bizde filterTerm ýagdaýy bar, ol gözleg meýdançasyna girizilýän ifadäni saklaýar we ony sazlamak üçin setFilterTerm funksiýasy bar:

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

Giris meýdançasyna nyşan girizilende her gezek updateFilterHandler funksiýasy çagyrylýar, onda filterTerm täzelenýär. Diňe şu ýerde biz useTransition gogymyzy ulanýarys, setFilterTerm ornatma funksiýasyny aşakdaky ýaly startTransition içine alýarys:

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

Şeýlelik bilen, biz filterTerm ýagdaýyny täzelemek üçin pes prioritet belgledik we giris meýdanymyz çalt jogap berýän bolup galar.

isPending üýtgeýjisiniň kömegi bilen biz ulanyja sanawyň täzelenýändigini görkezip bileris. Sanaw täzelenýärkä, bu maglumaty giris meýdanynyň aşagynda görkezeliň:

return ( <div> <input type="text" onChange={updateFilterHandler} /> {isPending && <p>täzelenýär ...</p>} <ProductList products={filteredProducts} /> </div> );
Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et