>
Next.jsのフォームでユーザーが入力を止めた時に処理を実行する方法(デバウンス)について説明します。
デバウンスとは、関数が実行される頻度を制限する手法です。この記事の例では、ユーザーが入力を止めた時にのみデータベースからデータを取得しています。
ライブラリuse-debounceをインストールします。
npm i use-debounce
処理を実装します。
'use client';
import { useDebouncedCallback } from 'use-debounce';
// ...
const MyComponent = () => {
// ...
const handleSearch = useDebouncedCallback((keyword: string) => {
// データを取得する処理
}, 300);
return (
<input onChange={e => handleSearch(e.target.value)} />
);
}
この例では、ユーザーが入力を止めてから300ミリ秒後に処理を実行します。