← Examples

useDebouncedState

어떤 React state든 값이 바뀐 뒤 400ms 동안 멈추면 그때만 디바운스된 값이 따라옵니다. 검색어·슬라이더·셀렉트처럼 UI에 따라 state를 바꾸는 모든 경우에 동일하게 쓸 수 있습니다.

문자열 (SearchBar)

즉시 값
디바운스 후 (API·useQuery 키)
디바운스 기준 시뮬 요청 횟수
0
마지막 시뮬 요청 키워드
마지막 Enter 검색 (즉시)

숫자 (range 슬라이더)

슬라이더를 움직일 때마다 state는 바로 바뀌고, 멈춘 뒤에만 debouncedMaxPrice가 갱신됩니다.

즉시 값
500
디바운스 후 (예: 목록 필터 요청)
500
디바운스 기준 시뮬 요청 횟수
0
마지막 반영된 디바운스 값

문자열 (select)

input이 아니어도 useState만 있으면 동일합니다.

즉시 값
디바운스 후 (예: 목록 쿼리)
디바운스 기준 시뮬 요청 횟수
0
마지막 반영된 디바운스 값

코드 요약

const [query, setQuery] = useState("");
const debouncedQuery = useDebouncedState(query, 400);

const [maxPrice, setMaxPrice] = useState(500);
const debouncedMaxPrice = useDebouncedState(maxPrice, 400);

const [category, setCategory] = useState("");
const debouncedCategory = useDebouncedState(category, 400);

// useQuery({ queryKey: ["items", debouncedQuery, debouncedMaxPrice, debouncedCategory], ... })
아트봉봉스쿨

아트봉봉스쿨은더 큰 화면에서 쓸 수 있어요