⊗jsrtPmHkUDV 18 of 47 menu

Hook Optimisasi Performa useDeferredValue di React

Hook optimisasi performa useDeferredValue, sama seperti useTransition, membantu mempercepat kerja antarmuka grafis, tetapi melakukannya dengan cara yang sedikit berbeda.

Lihatlah pelajaran sebelumnya dan perhatikan bagaimana dalam kasus useTransition kita membungkus fungsi pembaruan setFilterTerm. Jadi, kode pembaruan state tidak selalu dapat diakses. Kode itu mungkin tersembunyi, misalnya, di dalam library yang Anda sambungkan. Dalam hal ini, kita dapat menggunakan hook useDeferredValue. Kemudian kita perlu membungkus state itu sendiri atau hasil yang dihitung menggunakan state tersebut, sehingga menurunkan prioritasnya.

Mari kita analisis cuplikan kode berikut dari komponen anak ProductList:

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

Perhatikan bahwa di sini kita membungkus variable products itu sendiri dengan useDeferredValue, yang kita ambil dari props komponen. Kemudian kita menuliskan hasilnya ke dalam deferredProducts, yang akan kita gunakan selanjutnya:

const deferredProducts = useDeferredValue(products);

Sekarang, jika dalam cuplikan kode komponen utama, yang kita bahas pada pelajaran sebelumnya, kita hapus baris:

const [isPending, startTransition] = useTransition();

Dan baris yang menggunakan isPending:

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

Serta melepas pembungkus dari fungsi setFilterTerm, maka kita akan mendapatkan hasil yang sama seperti pada pelajaran sebelumnya:

function updateFilterHandler(event) { setFilterTerm(event.target.value); }
Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak