UseDebounce Custom Hooks 만들기
Debouce란?
검색 입력에 입력할 때 입력 결과가 나타날 때까지 지연이 있는 것
debounce function은 사용자가 미리 결정된 시간 동안 타이핑을 멈출 때까지 keyup 이벤트의 처리를 지연시킨다.
hooks 폴더 및 파일 생성
useDebounce Hooks 생성
UseDebounce.js
import { useEffect, useState } from "react";
export const useDebounce = (value, delay) => {
const [debounceValue, setDebounceValue] = useState(value);
useEffect(() => {
const handler = setTimeout(() => {
setDebounceValue(value)
}, delay);
return () => {
clearTimeout(handler)
}
}, [value, delay])
return debounceValue
}
searchTerm => debouncedSearchTerm
index.js
const debouncedSearchTerm = useDebounce(searchTerm, 500);
useEffect(() => {
if(debouncedSearchTerm) {
fetchSearchMovie(debouncedSearchTerm)
}
}, [debouncedSearchTerm])
728x90
반응형
'혼자 이것저것 공부해보는 > 디즈니 앱 플러스 클론 코딩' 카테고리의 다른 글
모달 창 외부 클릭 시 모달 닫게 만드는 Custom Hooks 생성 (2) | 2024.08.01 |
---|---|
useParams를 이용한 영화 상세 페이지 구현하기 (0) | 2024.07.31 |
검색 페이지 UI 구현하기 (0) | 2024.07.31 |
useLocation을 이용한 검색 페이지 구현하기 (0) | 2024.07.06 |
React Router Dom 적용하기 (0) | 2024.06.25 |