Skip to main content

useDebounce

The useDebounce hook delays the execution of a value update.

Usage​

Installation​

You can import the useDebounce hook from the hookstorm package like this:

import { useDebounce } from "hookstorm";

Parameters​

  • value: The input value to debounce. Can be any type.
  • delay: (optional) The debounce delay in milliseconds. Defaults to 500.

Return Values​

The useDebounce hook returns the debounced value of the same type as the input.

Example Usage​

The following example demonstrates how to use the useDebounce hook within a functional component:

import { useState, ReactElement } from "react";
import { useDebounce } from "hookstorm";

export default function SearchComponent(): ReactElement {
const [query, setQuery] = useState("");
const debouncedQuery = useDebounce(query, 500);

return (
<div>
<input value={query} onChange={(e) => setQuery(e.target.value)} placeholder="Search..." />
<p>Debounced value: {debouncedQuery}</p>
</div>
);
}

Explanation​

In the example above:

  • The useDebounce hook delays updating debouncedQuery until 500ms after the user stops typing.
  • This prevents expensive operations (e.g., API calls) from firing on every keystroke.

Conclusion​

useDebounce is a lightweight hook for throttling rapid value changes, making it ideal for search inputs, resize handlers, and any scenario where you want to wait for a pause before reacting to user input.