Angular - 5.8- Résumé des propriétés personnalisées et des liaisons d'événements
Faisons un rapide récapitulatif. La communication entre composants
est une fonctionnalité clé d'Angular. Nous avons vu deux outils complémentaires :
@Input pour rendre une propriété d'un composant assignable depuis
l'extérieur, et @Output (couplé à EventEmitter) pour qu'un
composant émette ses propres événements écoutables par son parent. Ce sont des
fonctionnalités très importantes que nous utiliserons abondamment dans la section
Livre de recettes : c'est ce qui permet de rendre une application réellement
dynamique en faisant collaborer de nombreux composants.
Limites et alternative
Cette approche a toutefois une limite : si deux composants éloignés dans l'arbre
(par exemple côte à côte mais sans lien parent-enfant direct) doivent dialoguer, il
faut faire remonter un événement jusqu'à l'ancêtre commun via une chaîne d'
@Output, puis redescendre la donnée via une chaîne d'@Input.
Ces chaînes peuvent devenir compliquées et fragiles à mesure que l'application
grandit. Pour ces cas-là, la section sur les services présentera une
autre approche, basée sur l'injection de dépendances Angular. Ce n'est pas une
« meilleure » approche dans l'absolu : juste un outil mieux adapté à un autre cas
d'usage.
- communication parent → enfant :
@Input; - communication enfant → parent :
@Output+EventEmitter; - communication entre composants distants : un service Angular partagé (à venir).