signals_watch/signals_watch library
A production-ready reactive widget for signals_flutter with lifecycle callbacks, debouncing, throttling, error handling, and more.
Features
- 🔄 Multiple constructor patterns (signal, signals, select, custom)
- 🎯 Lifecycle callbacks (onInit, onValueUpdated, onAfterBuild, onDispose)
- ⏱️ Debouncing and throttling
- 🎛️ Conditional updates (shouldRebuild, shouldNotify)
- 🐛 Error handling with custom builders
- ⌛ Loading state support
- 🔍 Debug tools (including SelectiveSignalsObserver)
- 🎭 StatelessWidget-friendly
Quick Start
// Create signals (auto-registered)
final counter = SignalsWatch.signal(0);
final searchQuery = SignalsWatch.signal('');
// Basic usage
SignalsWatch<int>.fromSignal(
counter,
onValueUpdated: (value) {
print('Counter: $value');
},
builder: (value) => Text('$value'),
);
// With debouncing
SignalsWatch<String>.fromSignal(
searchQuery,
debounce: Duration(milliseconds: 300),
onValueUpdated: (value) => performSearch(value),
builder: (value) => SearchResults(value),
);
// Debug signals with selective observer
void main() {
SignalsWatch.initializeSignalsObserver();
runApp(MyApp());
}
Classes
-
SignalsWatch<
T> - A unified class that bundles:
Extensions
-
SignalListObserveExtension
on List<
ReadonlySignal> - Extension on List<ReadonlySignal> to provide fluent observe API for multiple signals.
-
SignalNotifyExtension
on Signal<
T> -
Extension to add
.reset()to signals -
SignalObserveExtension
on ReadonlySignal<
T> - Extension on ReadonlySignal to provide fluent observe API.