Getting Started

Getting Started#

Get up and running with duxt_signals in minutes.

Installation#

Add duxt_signals to your pubspec.yaml:

dependencies:
  duxt_signals: ^0.1.0

Then run:

dart pub get

Import#

import 'package:duxt_signals/duxt_signals.dart';

Your First Signal#

Create a signal with an initial value:

final count = signal(0);

Read the value using call syntax:

print(count()); // 0

Update the value:

count.set(5);
print(count()); // 5

// Or update based on previous value
count.update((v) => v + 1);
print(count()); // 6

Computed Values#

Create derived state that automatically updates:

final price = signal(100);
final quantity = signal(2);

final total = computed(() => price() * quantity());

print(total()); // 200

quantity.set(3);
print(total()); // 300 - automatically updated!

Effects#

Run side effects when signals change:

final name = signal('John');

effect(() {
  print('Hello, ${name()}!');
});
// Prints: "Hello, John!"

name.set('Jane');
// Prints: "Hello, Jane!"

Form State#

Create form fields with validation:

final email = formField('', validators: [
  required('Email is required'),
  email('Invalid email format'),
]);

// Check validity
print(email.isValid); // false (empty)
print(email.error);   // "Email is required"

email.set('[email protected]');
print(email.isValid); // true
print(email.error);   // null

Next Steps#