Lab 12: toSignal()
📖 Ressources
Section intitulée « 📖 Ressources »🚀 Code de Départ
Section intitulée « 🚀 Code de Départ »step-12-album-wholesale-v21-pre-control-flow
Continuez depuis le résultat du Lab 12. Si vous repartez à zéro, utilisez step-12-album-wholesale-v21-pre-control-flow comme base et complétez d’abord les Labs 11 et 12.
Dans ce lab, vous allez convertir les observables RxJS en signals en utilisant toSignal(). Vous transformerez les flux observables en signals réactifs, remplacerez les pipes async par des appels de signals dans les templates, et migrerez les BehaviorSubjects vers des signals modifiables.
📝 Instructions
Section intitulée « 📝 Instructions »Étape 1: Convertir un Observable en Signal
Section intitulée « Étape 1: Convertir un Observable en Signal »toSignal() convertit un Observable en Signal:
import { toSignal } from '@angular/core/rxjs-interop';
// Avant: Observablealbums$ = this.albumService.getAlbums();
// Après: Signalalbums = toSignal(this.albumService.getAlbums(), { initialValue: [] });Changements dans le template:
<!-- Avant: pipe async -->@for (album of albums$ | async; track album.id) { <app-album-card [album]="album"></app-album-card>}
<!-- Après: appel du signal -->@for (album of albums(); track album.id) { <app-album-card [album]="album"></app-album-card>}Étape 2: Convertir un BehaviorSubject en Signal
Section intitulée « Étape 2: Convertir un BehaviorSubject en Signal »Remplacez BehaviorSubject par signal():
// Avant: BehaviorSubjectprivate isAuthenticatedSubject = new BehaviorSubject<boolean>(false);isAuthenticated$ = this.isAuthenticatedSubject.asObservable();
// Après: Signalprivate isAuthenticatedSignal = signal<boolean>(false);isAuthenticated = this.isAuthenticatedSignal.asReadonly();Mettez à jour les méthodes:
// Avantthis.isAuthenticatedSubject.next(true);
// Aprèsthis.isAuthenticatedSignal.set(true);
