用于限制函数执行频率的 Hook,在指定间隔内最多按规则执行一次(或 leading + trailing 各一次)。
import { useThrottle } from '@resin-hooks/core';useThrottle<T>(fn: T, options?: UseThrottleOptions): { throttleFn: ThrottleFn<T>; cancel: () => void }| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| fn | (...args) => R |
- | 需要节流的函数 |
| options | UseThrottleOptions |
见下表 | 可选配置项 |
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| interval | number |
1000 |
节流间隔(毫秒) |
| leading | boolean |
true |
是否在首次满足条件时立即执行 |
| trailing | boolean |
false |
是否在间隔结束后用最后一次参数补执行一次 |
| resultCallback | (res: R) => void |
- | fn 执行后的回调,可获取返回值 |
| 属性 | 类型 | 说明 |
|---|---|---|
| throttleFn | (...args) => R | undefined |
节流后的函数,调用时传入与 fn 相同的参数 |
| cancel | () => void |
取消未执行的 trailing 定时器,并重置状态 |
throttleFn 在 interval、leading、trailing、resultCallback 变化时会重新创建cancel 会清空未执行的 trailing,并将内部状态重置,下次调用会重新开始节流周期