Quand utiliser les `Signals` en Angular - Pecunia-App/pecunia-front GitHub Wiki
Signals
en Angular
Quand utiliser les 1. Idéal pour les composants UI simples et réactifs
Exemples :
- Boutons
- Icônes
- inputs
- Dropdowns
Pourquoi ?
- Mise à jour immédiate sans re-render global
- Pas de gestion d’abonnement / désabonnement
- Code plus simple et lisible
- Très performant pour l’état local et synchrone
RxJS
) pour les flux asynchrones
2. 🌐 Observables (Exemples :
- Requêtes HTTP
- WebSocket / EventSource
- Flux d’événements utilisateur complexes
Pourquoi ?
- Puissance de composition (
mergeMap
,combineLatest
, etc.) - Gestion d’événements multiples ou dépendants
- Contrôle du temps (
debounce
,delay
, etc.)
🔁 Ces observables peuvent être convertis en signals dans les composants avec
toSignal()
.
3. Classes pour les composants complexes avec logique métier
Exemples :
- Formulaires avancés avec validations dynamiques
- Menus interactifs et contextuels
- Wizards, éditeurs, dashboards
Pourquoi ?
- Encapsulation claire avec décorateurs (
@Input
,@Output
, DI…) - Bonne séparation des responsabilités
- Combinable avec des signals pour une logique plus réactive
Combinaison des trois
Un code moderne Angular typique combine :
- RxJS dans les services (pour les flux de données externes)
- Signals dans les composants (pour l’état local réactif)
- Classes Angular (comme conteneur logique et structure de composant)
Résumé rapide
Tâche | Outil recommandé |
---|---|
UI léger et très réactif | ✅ signal() |
Données asynchrones (HTTP, etc.) | ✅ Observable (RxJS) |
Formulaire / menu / logique métier | ✅ class (avec Signals) |
Coordination entre composants | ✅ Observable , @Input |