⊗jsrtPmHkUDV 18 of 47 menu

React 성능 최적화 훅 useDeferredValue

성능 최적화 훅인 useDeferredValueuseTransition와 마찬가지로 그래픽 인터페이스의 작동 속도를 높이는 데 도움을 주지만, 약간 다른 방식으로 작동합니다.

이전 강의를 살펴보고 useTransition의 경우 어떻게 상태 업데이트 함수 setFilterTerm를 감쌌는지 확인해 보세요. 하지만, 상태 업데이트 코드가 항상 접근 가능한 것은 아닙니다. 예를 들어, 연결한 라이브러리 내에 숨겨져 있을 수 있습니다. 이럴 때는 useDeferredValue 훅을 사용할 수 있습니다. 이 경우 상태 자체나 해당 상태를 사용해 계산된 결과를 감싸서 우선순위를 낮춰야 합니다.

자식 컴포넌트 ProductList의 다음 코드 조각을 분석해 보겠습니다:

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

여기서는 컴포넌트의 props에서 가져온 변수 products 자체를 useDeferredValue로 감쌌다는 점에 주의하세요. 그 결과를 deferredProducts에 저장하여 앞으로 작업하게 됩니다:

const deferredProducts = useDeferredValue(products);

이제, 지난 강의에서 살펴본 메인 컴포넌트의 코드 조각에서 다음 줄을 제거한다고 가정해 보겠습니다:

const [isPending, startTransition] = useTransition();

그리고 isPending을 사용하는 줄도 제거합니다:

{isPending && <p>업데이트 중 ...</p>}

또한 setFilterTerm 함수를 감싼 래퍼도 제거하면, 지난 강의와 동일한 결과를 얻을 수 있습니다:

function updateFilterHandler(event) { setFilterTerm(event.target.value); }
한국어
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ʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부