FLUTTER ECOSYSTEM

felangel/broadcast_bloc

對 bloc 狀態管理庫的擴展,增加了將狀態變更廣播到流通道的支援。

broadcast_bloc 專案封面
Stars
26
Forks
0
最近推送(UTC)
2026年4月13日
專案狀態
未封存
Felix Angelov GitHub avatar
GITHUB User

Felix Angelov ↗

software engineer by day, software engineer by night.

語言Dart

此儲存庫發佈的套件

使用的依賴

依賴清單 5 項

原始 README

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

展開 / 收合專案 README

Broadcast Bloc

build coverage pub package style: bloc lint License: MIT

An extension to the bloc state management library which adds support for broadcasting state changes to stream channels.

Learn more at bloclibrary.dev!


Sponsors

Our top sponsors are shown below! [Become a Sponsor]

https://raw.githubusercontent.com/felangel/bloc/master/assets/sponsors/shorebird.png https://raw.githubusercontent.com/felangel/bloc/master/assets/sponsors/stream.png https://raw.githubusercontent.com/felangel/bloc/master/assets/sponsors/rettel.png

Quick Start 🚀

// Extend `BroadcastCubit` instead of `Cubit`.
// The package also exports:
// * `BroadcastBloc`
// * `BroadcastMixin`
class CounterCubit extends BroadcastCubit<int> {
  CounterCubit() : super(0);

  void increment() => emit(state + 1);
}

void main() {
  final controller = StreamController<String>(sync: true);
  final subscription = controller.stream.listen(print);
  final channel = StreamChannel(controller.stream, controller.sink);

  // Create an instance of the cubit.
  final cubit = CounterCubit()
    // Subscribe the channel.
    ..subscribe(channel)
    // Trigger a state change which will be broadcast to subscribed channels.
    ..increment()
    // Unsubscribe channel.
    ..unsubscribe(channel);

  subscription.cancel();
  cubit.close();
}