728x90
728x90
use-debounce 패키지
들어가며
- 리액트(React.js)와 Next.js 같은 환경에서 컴포넌트가 자주 업데이트 되지 않도록 해주는
use-debounce
패키지에 대해 정리해본다.
![]() |
![]() |
use-debounce
개념
- 리액트(React.js)와 Next.js 같은 환경에서 컴포넌트가 자주 업데이트되지 않도록 특정 동작을 디바운스(Debounce) 하기 위해 사용할 수 있는 유틸리티 훅
- 사용자가 입력을 빠르게 반복할 때 불필요한 리렌더링이나 API 호출을 방지하는 데 유용하다.
디바운스(Debounce)
- 사용자가 마지막으로 발생한 이벤트 이후, 일정 시간 동안 추가 이벤트가 발생하지 않았을 때만 함수를 실행하는 패턴
- 주로 API 요청이나 리소스가 많이 필요한 이벤트 처리에 사용된다.
- 검색창에서 사용자가 입력할 때마다 API 요청을 보내지 않고, 입력이 멈춘 후에만 요청 전송
- 스크롤 이벤트와 같이 연속된 이벤트 발생 시 성능 저하 방지
설치하기
$ npm install use-debounce # yarn add use-debounce
사용 방법
import { useDebounce } from 'use-debounce'; const [debouncedQuery] = useDebounce(value, delay);
- 첫 번째 인자(
value
) : 디바운스할 값 - 두 번째 인자(
delay
): 딜레이 시간 value
가 변경될 때마다 일정 시간 동안 기다린 후, 값이 변경되지 않은 상태면 최종 값이 업데이트된다.
사용 예제
import { useDebounce } from 'use-debounce'; import { useState, useEffect } from 'react'; export default function SearchComponent() { const [query, setQuery] = useState(''); const [debouncedQuery] = useDebounce(query, 500); // 500ms Delay useEffect(() => { if (debouncedQuery) { console.log('API 호출: ', debouncedQuery); } }, [debouncedQuery]); return ( <input type="text" value={query} onChange={(e) => setQuery(e.target.value)} placeholder="검색어를 입력하세요" /> ); }
참고 사이트
use-debounce
Debounce hook for react. Latest version: 10.0.4, last published: 14 days ago. Start using use-debounce in your project by running . There are 1084 other projects in the npm registry using use-debounce.
www.npmjs.com
728x90
728x90
'Programming > React' 카테고리의 다른 글
[React.ts] PropsWithChildren (0) | 2024.11.05 |
---|---|
[React.js] const Component vs. function Component (2) | 2024.11.04 |
[React.js] React Share 라이브러리 (0) | 2024.11.01 |
[React.js] Clerk (0) | 2024.10.28 |
[React.js] antd 컴포넌트 라이브러리 (1) | 2024.10.23 |
[React.js] 일반 CSS와 CSS Module 비교 (0) | 2024.10.16 |
[React.js] caseReducers 속성 (Redux Toolkit) (0) | 2024.10.03 |
[React.js] URL의 파리미터(Parameter) 값 가져오기 (1) | 2024.10.02 |