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:立即执行当前等待的函数

相关推荐
joan_8528 分钟前
input禁止自动填充
前端·elementui·vue
林间风雨32 分钟前
layui 2.9.16 版本,根据字段字数最大数,表格自适应字段宽度
前端·javascript·layui
木子啊43 分钟前
HTML防窥技巧:让源码难以偷窥
前端·html·查看源码·禁止查看源码
梦6501 小时前
前端路由守卫:掌控页面跳转的 “守门人”
前端
jiayong231 小时前
前端性能优化系列(二):请求优化策略
前端·性能优化
H_ZMY1 小时前
前端实现 HTTPS 强制跳转与移动端域名自动适配
前端·网络协议·https
We་ct1 小时前
LeetCode 42. 接雨水:双指针解法深度剖析与全方法汇总
前端·算法·leetcode·typescript
灰海1 小时前
vue实现即开即用的AI对话打字机效果
前端·javascript·vue.js·打字机
摘星编程2 小时前
React Native鸿蒙:TabBar自定义图标样式
react native·react.js·harmonyos