useDebounceFn
?是 ahooks 提供的用于函數防抖的 Hook,它可以確保一個函數在連續觸發時只執行最后一次。
一、基本用法
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:立即執行當前等待的函數