FLUTTER ECOSYSTEM

arnold-parge/stream_mixin

一個簡單的 Dart 混入,用於向任何類別物件新增串流行為

stream_mixin 專案封面
Stars
7
Forks
0
最近推送(UTC)
2021年12月20日
專案狀態
未封存
arnold-parge GitHub avatar
GITHUB User

arnold-parge ↗

語言Dart

技術主題

此儲存庫發佈的套件

使用的依賴

依賴清單 3 項
  • flutter{"sdk":"flutter"}
  • flutter_lints開發依賴^1.0.4
  • flutter_test開發依賴{"sdk":"flutter"}

原始 README

以下為英文專案原文快照,最新內容請造訪 GitHub。

展開 / 收合專案 README

stream_mixin

State management using stream to avoid use of flutter's State/setState/StatefulWidget, boosting the performance and code separation.

Breaking change in 2.0.0 and 3.0.0. Check the changelog.

The Intention

The intention for this package is to use stream instead of flutter's state for streaming data from the controller/adapter/service class to the widgets, which results in better performance and cleaner code.

Basic example

A basic example of a counter service that increments the count and streams the count to the widget

class Counter with StreamMixin<int> {
  increment() {
    update((lastUpdate ?? 0) + 1);
  }
}

/// You can either create a global instance of Counter or create a
/// singleton (recommented) like class by adding the following in Counter class
/// ```dart
///   Counter._();
///   static Counter instance = Counter._();
/// ```
final counter = Counter();

anywhereInTheApp() {
  counter.increment();
}

Widget someWidget() {
  return StreamBuilder<int>(
    stream: counter.onChange,
    builder: (cxt, snap) => Text((snap.data ?? 0).toString()),
  );
}

Contribute ❤️

There are couple of ways in which you can contribute.

  • Propose any feature, enhancement
  • Report a bug
  • Fix a bug
  • Participate in a discussion and help in decision making
  • Write and improve some documentation. Documentation is super critical and - its importance cannot be overstated!
  • Send in a Pull Request 🙂