Skip to content

useDebounce

作用

用来处理防抖值的 Hook

原理

实现原理主要是调用 lodashdebounce 方法。 依赖于 useDebounceFn 这个 hook。

源码

ts
import { useEffect, useState } from 'react'
import useDebounceFn from '../useDebounceFn'
import type { DebounceOptions } from './debounceOptions'

function useDebounce<T>(value: T, options?: DebounceOptions) {
  const [debounced, setDebounced] = useState(value)

  const { run } = useDebounceFn(() => {
    setDebounced(value)
  }, options)

  useEffect(() => {
    run()
  }, [value])

  return debounced
}

export default useDebounce
ts
export interface DebounceOptions {
  wait?: number
  leading?: boolean
  trailing?: boolean
  maxWait?: number
}

如有转载或 CV 的请标注本站原文地址