What problem does it solve?
Signals-dart helps you design predictable, high-performance reactive state in Dart without unnecessary recomputation or UI churn by giving you advanced primitives for synchronous, asynchronous, and collection-driven reactivity.
Core Features & Use Cases
- Fine-grained reactivity with lazy evaluation: Use
signal, computed, and effect to derive state and run side effects only when relevant dependencies change.
- Async reactive state composition: Model loading/value/error lifecycles with
futureSignal, streamSignal, computedAsync, and aggregate multiple async sources via computedFrom.
- Reactive collections for granular updates: Use
listSignal, setSignal, mapSignal, iterableSignal, and queueSignal to track mutations and trigger observers appropriately.
- State utilities for real applications: Apply
linkedSignal for writable derived state overrides, trackedSignal for undo/redo history, timerSignal for periodic ticks, and connect for piping events into signals.
- Value semantics via options: Configure behavior using options classes (with copy/equality semantics) such as
SignalOptions, ComputedOptions, AsyncSignalOptions, and collection-specific options.
Quick Start
Use the signals-dart skill to design a reactive counter with batch updates, a derived computed label, and an effect that logs changes while avoiding circular subscriptions.