Skip to content

useDebounceEffect

debounce 기능이 적용된 Effect Hook

arguments

이름타입설명
func(...args: any[]) => any실행할 콜백 함수
depsReact.DependencyList의존성 배열 (선택, 기본값: [])
delaynumber디바운스 지연 시간 (밀리초, 선택, 기본값: 1000)

example

tsx
import { useDebounceEffect } from 'utils-dev-krak/react';
import { useState } from 'react';

const SearchComponent = () => {
  const [searchTerm, setSearchTerm] = useState('');
  const [results, setResults] = useState([]);

  useDebounceEffect(
    () => {
      // searchTerm이 변경된 후 200ms 후에 검색 실행
      fetchSearchResults(searchTerm).then(setResults);
    },
    [searchTerm],
    200
  );

  return (
    <div>
      <input
        type="text"
        value={searchTerm}
        onChange={(e) => setSearchTerm(e.target.value)}
        placeholder="검색어 입력..."
      />
      <ul>
        {results.map((result) => (
          <li key={result.id}>{result.name}</li>
        ))}
      </ul>
    </div>
  );
};