⊗jsrtPmHkUTr 17 of 47 menu

Kifaa cha Uboreshaji wa Utendaji useTransition katika React

Kifaa cha uboreshaji wa utendaji useTransition kinaturuhusu kusasisha hali (state) bila kuzuia kiingilio cha grafiki.

Kwa kutumia kifaa hiki, tunaweza kubainisha kipaumbele cha chini kwa kusasisha hali fulani, jambo linaloruhusu kusasisha kwa hali zingine kuwa na kipaumbele cha juu na kutekelezwa bila kucheleweshwa.

Mfano unaoweza kutolewa ni uchujaji wa orodha inayotiririka ya bidhaa wakati mtumiaji anaingiza herufi kwenye uwanja wa utafutaji. Bila shaka, orodha yenyewe inaweza kuonyeshwa kwa ucheleweshaji fulani, lakini hatungependa herufi ziingizwe kwenye uwanja wa utafutaji kwa ucheleweshaji.

Wacha tuone jinsi katika hali kama hizi kifaa useTransition kinatufaa. Tukichukulia, tuna kipande cha msimbo wa sehemu kuu ya kijenzi. Wacha tuchambue:

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

Hapa tunaona vigezo viwili kwa ajili ya useTransition. Kigezo isPending kinachukua thamani ya boolean na kinaonyesha kama mchakato wa kusasisha umekwisha, wakati startTransition ni kitendakazi kinachoruhusu kupunguza kipaumbele cha kusasisha:

const [isPending, startTransition] = useTransition();

Pia tuna hali filterTerm, ambayo inahifadhi usemi unaoingizwa kwenye uwanja wa kuingiza na kitendakazi setFilterTerm kwa ajili ya kuiweka:

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

Wakati wa kuingiza herufi kwenye uingizaji (input) kila wakati kitendakazi updateFilterHandler kinaitwa, ambapo kusasisha kwa filterTerm hufanyika. Hapa ndipo tunatumia kifaa chetu useTransition, kukikinga kitendakazi cha kuweka setFilterTerm kwenye startTransition kama ifuatavyo:

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

Kwa njia hii, tumeweka kipaumbele cha chini kwa ajili ya kusasisha hali filterTerm na uwanja wetu wa kuingiza utabaki kuwa unaokubali mabadiliko.

Kwa kutumia kigezo isPending tunaweza kumwonyesha mtumiaji, kwamba kusasisha orodha bado kunaendelea. Tuonyeshe taarifa hii chini ya uwanja wa kuingiza, wakati orodha inasasishwa:

return ( <div> <input type="text" onChange={updateFilterHandler} /> {isPending && <p>inasasishwa ...</p>} <ProductList products={filteredProducts} /> </div> );
Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa