React ahooks——副作用类hooks之useDebounceFn

useDebounceFnahooks 提供的用于函数防抖的Hook,它可以确保一个函数在连续触发时只执行最后一次。

一、基本用法

javascript 复制代码
import { useDebounceFn } from 'ahooks';
import { Button } from 'antd';

const Demo = () => {
  const { run } = useDebounceFn(
    () => {
      console.log('防抖函数执行', new Date().toISOString());
    },
    {
    wait: 500,
    leading: true,   // 第一次立即执行
    trailing: true,  // 最后一次也执行
    maxWait: 2000   // 最多2秒必须执行一次
  }
  );

  return (
    <Button onClick={run}>
      点击我(防抖500ms)
    </Button>
  );
};

二、参数说明

2.1 输入参数

  • 第一个参数:需要防抖的函数

  • 第二个参数:配置对象

    • wait:防抖等待时间,单位毫秒(默认 1000ms)

    • leading:是否在延迟开始前立即执行(默认 false)

    • trailing:是否在延迟结束后执行(默认 true)

    • maxWait:最大等待时间(保证函数至少在这个时间内执行一次)

2.2 返回值

  • run:触发执行的防抖函数

  • cancel:取消当前防抖

  • flush:立即执行当前等待的函数

相关推荐
华仔啊1 天前
前端必看!12个JS神级简写技巧,代码效率直接飙升80%,告别加班!
前端·javascript
excel1 天前
dep.ts 逐行解读
前端·javascript·vue.js
爱上妖精的尾巴1 天前
5-20 WPS JS宏 every与some数组的[与或]迭代(数组的逻辑判断)
开发语言·前端·javascript·wps·js宏·jsa
excel1 天前
Vue3 响应式核心源码全解析:Dep、Link 与 track/trigger 完整执行机制详解
前端
前端大卫1 天前
一个关于时区的线上问题
前端·javascript·vue.js
whltaoin1 天前
中秋赏月互动页面:用前端技术演绎传统节日之美
前端·javascript·html·css3·中秋主题前端
IT派同学1 天前
TableWiz诞生记:一个被表格合并逼疯的程序员如何自救
前端·vue.js
西洼工作室1 天前
CSS高效开发三大方向
前端·css
昔人'1 天前
css`font-variant-numeric: tabular-nums` 用来控制数字的样式。
前端·css
铅笔侠_小龙虾1 天前
动手实现简单Vue.js ,探索Vue原理
前端·javascript·vue.js