signals-hooks

star 783

Comprehensive hook utility functions integrating reactive signals seamlessly with flutter_hooks.

rodydavis By rodydavis schedule Updated 5/26/2026

name: signals_hooks description: Comprehensive hook utility functions integrating reactive signals seamlessly with flutter_hooks.

Signals Hooks Skill

This skill provides comprehensive instructions and reference guidelines for utilizing signals_hooks package in Flutter applications. It integrates signals_flutter reactivity with the dynamic widget-state lifecycles of flutter_hooks.

Modern Positional Options API

In signals.dart v7, all hooks have been migrated to use a clean positional Options pattern instead of verbose named parameters. The positional parameters are structured as [keys, options]. To supply options (like name, autoDispose, or equality inside classes like SignalOptions, AsyncSignalOptions, or ListSignalOptions), they must be passed as the second positional optional argument, with the keys dependency list passed as the first positional optional argument (e.g., useSignal(value, const [], SignalOptions(name: 'counter'))).

Hook Reference Summary Table

Hook Name Options Type Description
useSignal SignalOptions Wraps a standard mutable Signal bound to the hook state lifecycle.
useComputed ComputedOptions Creates a read-only Computed signal that caches computed values and tracks changes.
useSignalEffect - Registers a side-effect callback that automatically disposes when the hook unmounts.
useExistingSignal - Safely binds an existing, external signal to automatically rebuild the widget on change.
useSignalValue - Directly extracts and watches the value of a signal, returning the unwrapped T value.
useFutureSignal AsyncSignalOptions Triggers an asynchronous callback and returns its result wrapped in a FutureSignal.
useStreamSignal AsyncSignalOptions Subscribes to a Stream and exposes its events via a StreamSignal.
useAsyncSignal AsyncSignalOptions Wraps an asynchronous task state inside a manageable AsyncSignal.
useAsyncComputed AsyncSignalOptions Creates a reactive computed signal driven by an asynchronous callback.
useValueNotifierToSignal SignalOptions Bridges a standard Flutter ValueNotifier to a mutable reactive Signal.
useValueListenableToSignal SignalOptions Bridges a standard Flutter ValueListenable to a read-only ReadonlySignal.
useListSignal ListSignalOptions Creates a reactive ListSignal for list collections.
useSetSignal SetSignalOptions Creates a reactive SetSignal for set collections.
useIterableSignal IterableSignalOptions Creates a reactive IterableSignal for iterable collections.
useMapSignal MapSignalOptions Creates a reactive MapSignal for key-value collections.
useTrackedSignal TrackedSignalOptions Creates a TrackedSignal that remembers its previous values.
useQueueSignal QueueSignalOptions Creates a reactive QueueSignal for queue collections.
useChangeStackSignal ChangeStackSignalOptions Creates a ChangeStackSignal that manages undo/redo history.
useLinkedSignal LinkedSignalOptions Creates a writable computed LinkedSignal bridging two signals.
useLazySignal SignalOptions Creates a LazySignal initialized lazily on first access.

Best Practices

  1. Avoid Named Parameters: Do NOT pass named configuration parameters (like name or autoDispose) directly to hooks. Always wrap them in the positional Options parameter.
  2. Positional Parameter Order: The first positional optional parameter is keys (list of dependencies), and the second positional optional parameter is options (the options configuration object).
  3. Memory Safety: signals_hooks automatically disposes all created signals and effects when the widget is unmounted, preventing memory leaks.
Install via CLI
npx skills add https://github.com/rodydavis/signals.dart --skill signals-hooks
Repository Details
star Stars 783
call_split Forks 82
navigation Branch main
article Path SKILL.md
More from Creator