Quand utiliser les `Signals` en Angular - Pecunia-App/pecunia-front GitHub Wiki

Quand utiliser les Signals en Angular

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

2. 🌐 Observables (RxJS) pour les flux asynchrones

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