框架
版本
Debouncer API 参考
Throttler API 参考
速率限制器 API 参考
队列 API 参考
批处理器 API 参考
批处理器示例

概述

TanStack Pacer 是一个专注于为控制应用程序中函数执行时序提供高质量实用程序的库。虽然其他地方也存在类似的实用程序,但我们的目标是正确处理所有重要细节——包括类型安全摇树优化以及一致且直观的 API。通过专注于这些基础知识并以框架无关的方式提供它们,我们希望使这些实用程序和模式在您的应用程序中更加普遍。正确的执行控制通常是应用程序开发中的事后想法,导致本可以避免的性能问题、竞争条件和糟糕的用户体验。TanStack Pacer 帮助您从一开始就正确实施这些关键模式!

Important

TanStack Pacer 目前处于 alpha 阶段,其 API 可能会发生变化。

此库的范围可能会扩大,但我们希望保持每个单独实用程序的包大小精简且专注。

起源

TanStack Pacer 的许多想法(和代码)都不是新的。事实上,其中许多实用程序已经在其他 TanStack 库中存在了相当长一段时间。我们从 TanStack Query、Router、Form 甚至 Tanner 最初的 Swimmer 库中提取了代码。然后我们清理了这些实用程序,填补了一些空白,并将它们作为一个独立的库发布。

特性

Note

TanStack Pacer 目前仅是一个客户端库

  • 防抖
    • 延迟执行直到一段不活动期之后,适用于您只关心序列中最后一次执行的情况。
    • 同步或异步防抖实用程序,支持 Promise 和错误处理
    • 控制前沿、后沿和启用选项
  • 节流
    • 平滑地限制函数可以触发的速率
    • 同步或异步节流实用程序,支持 Promise 和错误处理
    • 控制前沿、后沿和启用选项。
  • 速率限制
    • 限制函数在一段时间内可以触发的速率
    • 同步或异步速率限制实用程序,支持 Promise 和错误处理
    • 固定或滑动窗口的速率限制变体
  • 队列
    • 将函数排队以按特定顺序执行
    • 从 FIFO、LIFO 和优先级队列实现中进行选择
    • 通过可配置的等待时间或并发限制来控制处理速度
    • 通过启动/停止功能管理队列执行
    • 在可配置的持续时间后使队列中的项目过期
  • 批处理
    • 将多个操作分块为更大的批次,以减少总的来回操作
    • 按时间段、批次大小、先到者或自定义条件触发批次执行
  • 异步或同步变体
    • 在每个实用程序的同步和异步版本之间进行选择
    • 异步变体的可选错误、成功和完成处理
  • 比较实用程序
    • 执行值之间的深度相等性检查
    • 为特定需求创建自定义比较逻辑
  • 便捷的钩子
    • 使用预构建的钩子(如 useDebouncedCallbackuseThrottledValueuseQueuedState 等)减少样板代码。
    • 根据您的用例从多个抽象层中进行选择。
    • 与每个框架的默认状态管理解决方案或您喜欢的任何自定义状态管理库一起使用。
  • 类型安全
    • 使用 TypeScript 实现完全类型安全,确保您的函数始终使用正确的参数调用
    • 用于灵活和可重用实用程序的泛型
  • 框架适配器
    • React、Solid 等
  • 摇树优化
    • 当然,我们默认情况下会为您的应用程序正确进行摇树优化,但我们还为每个实用程序提供额外的深度导入,从而更容易将这些实用程序嵌入到您的库中,而不会增加库的包大小恐惧症报告。