⊗jsrtPmHkUDV 18 of 47 menu

Hook tối ưu hiệu suất useDeferredValue trong React

Hook tối ưu hiệu suất useDeferredValue, cũng giống như useTransition, giúp tăng tốc giao diện đồ họa, nhưng thực hiện điều đó theo cách hơi khác một chút.

Hãy xem lại bài học trước và xem, trong trường hợp với useTransition chúng ta đã bọc hàm cập nhật setFilterTerm như thế nào. Vâng, đoạn mã cập nhật state không phải lúc nào cũng có thể truy cập được. Nó có thể bị ẩn, ví dụ, trong một thư viện mà bạn đã kết nối. Trong trường hợp này, chúng ta có thể sử dụng hook useDeferredValue. Khi đó chúng ta cần bọc chính state đó, hoặc kết quả được tính toán bằng state đó, từ đó giảm mức độ ưu tiên của nó.

Hãy phân tích đoạn mã sau của component con ProductList:

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

Lưu ý rằng ở đây chúng ta đã bọc trong useDeferredValue chính biến products, mà chúng ta lấy từ props của component. Sau đó chúng ta ghi kết quả vào deferredProducts, và sẽ làm việc với nó sau này:

const deferredProducts = useDeferredValue(products);

Bây giờ, nếu trong đoạn mã của component chính, mà chúng ta đã xem xét ở bài học trước, bỏ đi dòng:

const [isPending, startTransition] = useTransition();

Và dòng sử dụng isPending:

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

Đồng thời bỏ wrapper khỏi hàm setFilterTerm, thì chúng ta sẽ nhận được kết quả tương tự như bài học trước:

function updateFilterHandler(event) { setFilterTerm(event.target.value); }
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối