import { useState, useEffect } from 'react'
function useDebounce(value:any,delay=300) {
const [debouncedValue,setDebouncedValue] = useState(value)
useEffect(()=>{
const handler = window.setTimeout(()=>{
setDebouncedValue(value)
},delay)
return () => {
clearTimeout(handler)
}
},[value,delay])
return debouncedValue
}
export default useDebounce
传统的debounce,我们需要使用fn.apply的形式,而使用hook我们就可以这样进行书写