This hook is built on top of throttle() from lodash and accepts the same arguments.
Example of a throttled value:
import React, { useState, useEffect } from"react"import { useThrottle } from"@corets/use-throttle"constExample= () => {const [input,setInput] =useState("")constthrottledInput=useThrottle(input,300)consthandleSearch= () => {// fetch some data based on input... }consthandleChange= (e) =>setInput(e.target.value)// react to changes of the debounced inputuseEffect(handleSearch, [throttledInput])return (<input type="text" onChange={handleChange} /> )}
Example of a throttled function:
import React, { useState, useEffect } from"react"import { useThrottle } from"@corets/use-throttle"constExample= () => {const [input,setInput] =useState("")consthandleSearch=useThrottle((query:string) => {// you can also access variable "input" directly, if you want to// fetch some data based on input... },300)consthandleChange= (e) => {setInput(e.target.value)// trigger search immediately, this call will be throttledhandleSearch(e.target.value) }return (<input type="text" onChange={handleChange} /> )}
This hook accepts a third argument, identical to the one expected by the throttle() function from lodash.