Skip to content

useDebounceFnWithLock

useDebounceFnWithLock(fn, options?): Object

使用防抖函数和锁定函数实现带有锁定功能的函数

  1. 该函数封装了 ahooks 的 useDebounceFn 和 useLockFn,确保函数在特定时间内只执行一次。
  2. 此外,通过引入锁机制,可以确保函数在上一次执行未完成之前不会被再次触发

参数

NameTypeDefault valueDescription
fnFunctionundefined要延迟执行的函数。
options?Object{}配置对象,包含wait、leading和trailing三个属性
options.leadingundefined | booleantrue是否在第一次触发时立即执行,默认为true
options.trailingundefined | booleanfalse是否在最后一次触发后延迟执行,默认为false
options.waitundefined | number3000延迟执行的时间,默认为3000毫秒

返回值

Object

返回一个防抖且带锁功能的函数。

示例

ts
function MyComponent() {
 const {
   run: handleAction,
   cancel,
   flush,
 } = useDebounceFnWithLock(
   event => {
     // 在这里执行你的处理逻辑
     console.log('处理事件', event)
   },
   {wait: 1000, leading: true, trailing: false}
 )

 return <Button onClick={handleAction}>点击我</Button>
}

源码

use-debounce-fn-with-lock.js