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 天前
状态管理大乱斗#05 | Riverpod 源码评析 (中) - 上层建筑
android·前端·flutter
土豆12501 天前
Rust 生命周期开发实战:从"编译不过"到"一次过编"的实用指南
前端·rust
candyTong1 天前
一觉醒来,大模型就帮我排查完页面性能问题
前端·javascript·架构
魔术师Grace1 天前
我给 AI 做了场入职培训
前端·程序员
玩嵌入式的菜鸡1 天前
网页访问单片机设备---基于mqtt
前端·javascript·css
前端一小卒1 天前
我用 Claude Code 的 Superpowers 技能链写了个服务,部署前差点把服务器搞炸
前端·javascript·后端
滑雪的企鹅.1 天前
HTML头部元信息避坑指南大纲
前端·html
一拳不是超人1 天前
老婆天天吵吵要买塔罗牌,我直接用 AI 2 小时写了个在线塔罗牌
前端·ai编程
excel1 天前
如何解决 Nuxt DevTools 中关于 unstorage 包的报错
前端