Docs
Debounce
Debounce
Delay the execution of function or state update.
About
The useDebounce hook helps delay the execution of functions or state updates until a specified time period has passed without any further input changes. This is particularly useful for managing user input or initiating network requests, as it minimizes unnecessary computations and ensures that resource-heavy tasks only run after the input activity has paused.
Parameters
| Name | Type | Description |
|---|---|---|
| value | any | The value that you want to debounce. This can be of any type. |
| delay | number | The delay time in milliseconds. After this amount of time, the latest value is used. |
Return Values
| Name | Type | Description |
|---|---|---|
| debouncedValue | any | The debounced value. After the delay time has passed without the value changing, this will be updated to the latest value. |
Installation
Run the following command:
npx scriptkavi-hooks@latest add debounceUsage
import { useDebounce } from "@/hooks/debounce"export default function App() {
const [searchTerm, setSearchTerm] = React.useState("js")
const debouncedSearchTerm = useDebounce(searchTerm, 300)
const handleChange = (e) => {
setSearchTerm(e.target.value)
}
React.useEffect(() => {
const callApi = async () => {
if (debouncedSearchTerm) {
// Call Api
}
}
callApi()
}, [debouncedSearchTerm])
return (
<form>
<input
name="search"
placeholder="Search something..."
onChange={handleChange}
/>
</form>
)
}