搜尋套件、儲存庫與 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 項

原始碼儲存庫

使用此套件的專案