dart_event_notifier 1.0.1
dart_event_notifier: ^1.0.1 copied to clipboard
Make your objects observable with a very simple mixin. Pure Dart, no Flutter required.
event_notifier #
This is a very simple Dart package for adding observability to your objects. It does not have a dependency on Flutter, so can be used in Dart scripts or even server-side. It's a slight variation on Flutter's ChangeNotifier, bloc et cetera.
The gist of it is that our objects will be notifying of meaningful events that happen inside of them.
Usage #
See the full example in example/dart_event_notifier_example.dart.
First define the events that can occur in your objects. Sealed classes and enums are great for this.
sealed class CounterEvent {
const CounterEvent();
}
final class Incremented extends CounterEvent {
const Incremented();
}
final class Decremented extends CounterEvent {
const Decremented();
}
Then write your logic. Mix in the EventNotifer and use notify to post
important events that users of your class might want to react to!
class Counter with EventNotifier<CounterEvent> {
var _value = 0;
int get value => _value;
void increment() {
_value++;
notify(Incremented());
}
void decrement() {
_value--;
notify(Decremented());
}
}
To receive the events, listen to the events stream. Simple as that.
void main() {
final counter = Counter();
counter.events.listen((event) {
print('Received event: $event; current value: ${counter.value}');
});
}