function createDebouncer<TFn>(fn, initialOptions): SolidDebouncer<TFn>
function createDebouncer<TFn>(fn, initialOptions): SolidDebouncer<TFn>
定义于:debouncer/createDebouncer.ts:53
一个 Solid 钩子,用于创建和管理 Debouncer 实例。
这是一个较低级别的钩子,可直接访问 Debouncer 的功能,而无需 任何内置的状态管理。这使您可以将其与任何您喜欢的状态管理解决方案 (createSignal、Redux、Zustand 等)集成。
此钩子提供防抖功能,以限制函数的调用频率, 在执行最新调用之前等待指定的延迟。这对于处理 诸如窗口大小调整、滚动事件或实时搜索输入等频繁事件非常有用。
防抖器仅在自上次调用以来经过指定的等待时间后才执行函数。 如果在等待时间到期之前再次调用该函数,则计时器将重置并重新开始等待。
• TFn extends AnyFunction
TFn
DebouncerOptions<TFn>
SolidDebouncer<TFn>
// 对搜索函数进行防抖以限制 API 调用
const debouncer = createDebouncer(
(query: string) => fetchSearchResults(query),
{ wait: 500 } // 最后一次按键后等待 500 毫秒
);
// 在事件处理程序中
const handleChange = (e) => {
debouncer.maybeExecute(e.target.value);
};
// 通过信号访问防抖器状态
console.log('执行次数:', debouncer.executionCount());
console.log('是否待处理:', debouncer.isPending());
// 更新选项
debouncer.setOptions({ wait: 1000 });
// 对搜索函数进行防抖以限制 API 调用
const debouncer = createDebouncer(
(query: string) => fetchSearchResults(query),
{ wait: 500 } // 最后一次按键后等待 500 毫秒
);
// 在事件处理程序中
const handleChange = (e) => {
debouncer.maybeExecute(e.target.value);
};
// 通过信号访问防抖器状态
console.log('执行次数:', debouncer.executionCount());
console.log('是否待处理:', debouncer.isPending());
// 更新选项
debouncer.setOptions({ wait: 1000 });