react 自定义hooks防抖

383 阅读1分钟
const useDebounce = (value, dalay) => {
    const [debouncedValue, setDebouncedValue] = useState(value)

    useEffect(() => {
        const timeout = setTimeout(() => setDebouncedValue(value), dalay)
        return () => clearTimeout(timeout)
    }, [value, dalay])
}

调用

const debouncedParam = useDebounce(param, 2000)
useEffect(() => {
    fetch()
}, [debouncedParam])