搜索插件、代码仓与 APP 分类

插件详情v2.0.0

debounce_throttle

一个适用于 Futures、Streams 和回调的去抖动和节流工具。

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
19.9万
喜欢数
75
Pub 分数
160

安装插件

flutter pub add debounce_throttle

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个轻量级的 Dart 包,为异步操作(包括 Futures、Streams 和回调)提供去抖动和节流功能。它通过延迟或限制执行来帮助管理高频事件(如用户输入或网络请求),从而提高性能并减少资源使用。非常适合优化搜索输入、调整大小处理程序和实时表单验证。该包与平台无关,可无缝集成到 Android、iOS、Web、macOS、Windows 和 Linux 上的 Flutter 应用中。

适合场景

  • 优化搜索输入延迟
  • 减少快速API调用
  • 管理实时表单验证
  • 处理窗口大小调整事件
  • 改善滚动性能
  • 控制按钮点击速率

主要特点

  • 支持 Futures、Streams 和回调
  • 跨平台兼容性
  • 简单直观的 API
  • 可配置的延迟和节流间隔
  • 无外部依赖
  • 线程安全操作

适合对象

  • 开发响应式 UI 的开发者
  • 频繁用户交互的应用程序
  • 性能关键的应用程序
  • 实时数据处理
  • Flutter 应用针对多个平台

使用建议

  • 需要理解异步编程
  • 可能会在对时间敏感的操作中引入延迟
  • 不适用于即时响应场景
  • 需要仔细调整延迟值
  • 仅限事件速率限制使用场景
  • 不处理复杂的状态管理

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

debounce_throttle

A debouncer and throttle that works with Future, Stream, and callbacks.

Class Purpose
Debouncer Wait for changes to stop before notifying.
Throttle Notifies once per Duration for a value that keeps changing.

Usage

  final debouncer = Debouncer<String>(Duration(milliseconds: 200));

  // Run a search whenever the user pauses while typing.
  textEditingController.addListener(() => debouncer.value = textEditingController.text);
  debouncer.values.listen((search) => submitSearch(search));

  final throttle = Throttle<double>(Duration(milliseconds: 100));

  // Limit being notified of continuous sensor data.
  sensor.addListener(throttle.setValue);
  throttle.values.listen((data) => print('$data'));

example/main.dart output

Tick     : ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Changed  : -----------     -  --   - -  -    --  - -    -   -    -  -   - ---  -  - -  - -    -    -    - - - - --    -    -  -   - - -   --    - --    ---    -   -  - -     -    -     -  -  -
Debounced:              D     D   D     D  D          D    D   D    D  D          D         D    D    D             D    D    D  D       D    D       D      D    D        D     D    D     D
Throttled: T  T  T  T  T   T  T  T  T   T  T  T  T  T   T   T    T  T   T  T  T  T  T  T  T   T    T    T  T  T  T  T  T   T  T   T  T  T  T  T  T  T   T  T   T   T  T  T    T    T     T  T  T

所属分类

依赖

依赖清单 2 项

源码仓库

使用此插件的项目