Les Signals : concepts fondamentaux
Qu’est-ce qu’un Signal ?
Un Signal est un conteneur de valeur qui notifie ses consommateurs lorsqu’il change.
import { signal } from '@angular/core';
const count = signal(0);
console.log(count()); // 0 — lecture via appel de fonctioncount.set(5);console.log(count()); // 5Computed : valeurs dérivées
import { signal, computed } from '@angular/core';
const firstName = signal('Nicolas');const lastName = signal('Dupont');
const fullName = computed(() => `${firstName()} ${lastName()}`);
console.log(fullName()); // "Nicolas Dupont"firstName.set('Jean');console.log(fullName()); // "Jean Dupont" — recalculé automatiquementEffects : réactions aux changements
import { signal, effect } from '@angular/core';
const theme = signal<'light' | 'dark'>('light');
effect(() => { document.body.setAttribute('data-theme', theme());});
theme.set('dark'); // applique automatiquement l'attributInterop avec RxJS
import { toSignal, toObservable } from '@angular/core/rxjs-interop';
// Observable → Signalconst data = toSignal(this.http.get('/api/data'), { initialValue: null });
// Signal → Observableconst count$ = toObservable(this.count);