Communication Entre Composants dans Angular
Comment sont-ils connectés ?
Le TaskListComponent gérera un tableau de tâches, où chaque tâche est un objet avec les champs id, title et completed. Pour afficher chaque tâche, nous utiliserons le TaskComponent.
De plus, le TaskComponent communiquera avec son composant parent concernant les actions de l'utilisateur, telles que la suppression d'une tâche ou son marquage comme terminée. Cette interaction se fera par l'émission d'événements.
Implémentation de la logique du TaskListComponent
Création d'un composant chargé de la gestion de la liste des tâches. À l'intérieur, définition d'un tableau de tâches ainsi que deux méthodes — deleteTask() et toggleStatus() — pour gérer les tâches.
task-list.ts
task-list.html
task-list.css
- La liste des tâches (
tasks) est gérée à l'intérieur du composant, faisant deTaskListComponentle contrôleur central ; - La méthode
deleteTask()filtre la tâche par sonid; - La méthode
toggleStatus()recherche la tâche paridet inverse son statutcompleted.
Ce code utilise la directive *ngFor pour parcourir le tableau tasks et créer un TaskComponent pour chaque tâche.
Nous examinerons plus en détail le fonctionnement de *ngFor dans la section suivante.
-
[task]="task"— transmet la tâche courante au composant enfant afin qu'il puisse l'afficher ; -
(onDelete)="deleteTask($event)"— écoute l'événementonDeleteprovenant de l'enfant et appelledeleteTask()pour supprimer la tâche ; -
(onToggle)="toggleStatus($event)"— écoute l'événementonToggleet appelletoggleStatus()pour modifier le statut de la tâche.
Décorateurs : @Input() et @Output()
Il est maintenant temps de connecter le TaskComponent avec le TaskListComponent, et pour cela, nous utiliserons les décorateurs @Input() et @Output().
Dans Angular, les décorateurs @Input() et @Output() sont des outils essentiels pour la communication entre composants. Ils permettent de transmettre des données à un composant et d'émettre des événements depuis un composant. Voici un aperçu rapide :
Voici un exemple illustrant leur fonctionnement dans le TaskComponent :
task.ts
task.html
task.css
Dans notre cas, task est l'objet transmis depuis le composant parent TaskListComponent vers le TaskComponent.
Lorsque l'utilisateur supprime une tâche ou modifie son statut, le TaskComponent émet des événements auxquels le composant parent réagit.
@Output() et EventEmitter sont utilisés pour notifier le composant parent lorsqu'un événement se produit dans l'enfant. Ces décorateurs permettent au composant enfant de communiquer des actions telles que la suppression de tâches ou les changements de statut au parent.
La méthode deleteTask() est appelée lorsque l'utilisateur souhaite supprimer une tâche. Elle émet l'id de la tâche, permettant ainsi au parent de retirer la tâche de sa liste.
La méthode toggleTask() bascule le statut d'achèvement de la tâche et informe le composant parent de ce changement.
Comment tout fonctionne ensemble
-
TaskListComponenttransmet une tâche àTaskComponenten utilisant@Input(); -
L'utilisateur interagit avec la tâche (par exemple en cliquant sur « Supprimer ») ;
-
TaskComponentémet un événement (onDeleteouonToggle) avec l'idde la tâche ; -
TaskListComponentintercepte l'événement et met à jour la liste des tâches ; -
Angular actualise automatiquement l'interface utilisateur en fonction des données mises à jour.
Ainsi, @Input() et @Output() permettent une communication claire et efficace entre les composants, maintenant une structure organisée et réactive.
1. Que fait le décorateur @Input() dans Angular ?
2. Quel est le but de EventEmitter dans Angular ?
3. Dans TaskComponent, que fait le décorateur @Output() ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain more about how @Input() and @Output() work in Angular?
What is the purpose of EventEmitter in this context?
How does Angular automatically update the UI when the task list changes?
Awesome!
Completion rate improved to 3.13
Communication Entre Composants dans Angular
Glissez pour afficher le menu
Comment sont-ils connectés ?
Le TaskListComponent gérera un tableau de tâches, où chaque tâche est un objet avec les champs id, title et completed. Pour afficher chaque tâche, nous utiliserons le TaskComponent.
De plus, le TaskComponent communiquera avec son composant parent concernant les actions de l'utilisateur, telles que la suppression d'une tâche ou son marquage comme terminée. Cette interaction se fera par l'émission d'événements.
Implémentation de la logique du TaskListComponent
Création d'un composant chargé de la gestion de la liste des tâches. À l'intérieur, définition d'un tableau de tâches ainsi que deux méthodes — deleteTask() et toggleStatus() — pour gérer les tâches.
task-list.ts
task-list.html
task-list.css
- La liste des tâches (
tasks) est gérée à l'intérieur du composant, faisant deTaskListComponentle contrôleur central ; - La méthode
deleteTask()filtre la tâche par sonid; - La méthode
toggleStatus()recherche la tâche paridet inverse son statutcompleted.
Ce code utilise la directive *ngFor pour parcourir le tableau tasks et créer un TaskComponent pour chaque tâche.
Nous examinerons plus en détail le fonctionnement de *ngFor dans la section suivante.
-
[task]="task"— transmet la tâche courante au composant enfant afin qu'il puisse l'afficher ; -
(onDelete)="deleteTask($event)"— écoute l'événementonDeleteprovenant de l'enfant et appelledeleteTask()pour supprimer la tâche ; -
(onToggle)="toggleStatus($event)"— écoute l'événementonToggleet appelletoggleStatus()pour modifier le statut de la tâche.
Décorateurs : @Input() et @Output()
Il est maintenant temps de connecter le TaskComponent avec le TaskListComponent, et pour cela, nous utiliserons les décorateurs @Input() et @Output().
Dans Angular, les décorateurs @Input() et @Output() sont des outils essentiels pour la communication entre composants. Ils permettent de transmettre des données à un composant et d'émettre des événements depuis un composant. Voici un aperçu rapide :
Voici un exemple illustrant leur fonctionnement dans le TaskComponent :
task.ts
task.html
task.css
Dans notre cas, task est l'objet transmis depuis le composant parent TaskListComponent vers le TaskComponent.
Lorsque l'utilisateur supprime une tâche ou modifie son statut, le TaskComponent émet des événements auxquels le composant parent réagit.
@Output() et EventEmitter sont utilisés pour notifier le composant parent lorsqu'un événement se produit dans l'enfant. Ces décorateurs permettent au composant enfant de communiquer des actions telles que la suppression de tâches ou les changements de statut au parent.
La méthode deleteTask() est appelée lorsque l'utilisateur souhaite supprimer une tâche. Elle émet l'id de la tâche, permettant ainsi au parent de retirer la tâche de sa liste.
La méthode toggleTask() bascule le statut d'achèvement de la tâche et informe le composant parent de ce changement.
Comment tout fonctionne ensemble
-
TaskListComponenttransmet une tâche àTaskComponenten utilisant@Input(); -
L'utilisateur interagit avec la tâche (par exemple en cliquant sur « Supprimer ») ;
-
TaskComponentémet un événement (onDeleteouonToggle) avec l'idde la tâche ; -
TaskListComponentintercepte l'événement et met à jour la liste des tâches ; -
Angular actualise automatiquement l'interface utilisateur en fonction des données mises à jour.
Ainsi, @Input() et @Output() permettent une communication claire et efficace entre les composants, maintenant une structure organisée et réactive.
1. Que fait le décorateur @Input() dans Angular ?
2. Quel est le but de EventEmitter dans Angular ?
3. Dans TaskComponent, que fait le décorateur @Output() ?
Merci pour vos commentaires !