Comunicazione tra Componenti in Angular
Come Sono Collegati?
Il TaskListComponent
gestirà un array di task, dove ogni task è un oggetto con i campi id
, title
e completed
. Per visualizzare ciascun task, utilizzeremo il TaskComponent
.
Inoltre, il TaskComponent
comunicherà con il suo componente genitore riguardo alle azioni dell'utente, come quando un task deve essere eliminato o contrassegnato come completato. Questa interazione avverrà tramite l'emissione di eventi.
Implementazione della Logica di TaskListComponent
Creiamo un componente che sarà responsabile della gestione dell'elenco dei task. Al suo interno, definiremo un array di task e aggiungeremo anche due metodi — deleteTask()
e toggleStatus()
— per gestire i task.
task-list.ts
task-list.html
task-list.css
- L'elenco delle attività (
tasks
) è gestito all'interno del componente, rendendoTaskListComponent
il controller centrale; - Il metodo
deleteTask()
filtra l'attività tramite il suoid
; - Il metodo
toggleStatus()
trova l'attività tramiteid
e ne alterna lo statocompleted
.
Questo codice utilizza la direttiva *ngFor
per iterare sull'array tasks
e creare un TaskComponent
per ogni attività.
Analizzeremo più da vicino come funziona *ngFor
nella prossima sezione.
-
[task]="task"
— passa l'attività corrente al componente figlio affinché possa visualizzarla; -
(onDelete)="deleteTask($event)"
— ascolta l'eventoonDelete
dal figlio e richiamadeleteTask()
per rimuovere l'attività; -
(onToggle)="toggleStatus($event)"
— ascolta l'eventoonToggle
e richiamatoggleStatus()
per modificare lo stato dell'attività.
Decoratori: @Input() e @Output()
Ora è il momento di collegare il TaskComponent
con il TaskListComponent
, e per farlo useremo i decoratori @Input()
e @Output()
.
In Angular, i decoratori @Input()
e @Output()
sono strumenti fondamentali per la comunicazione tra componenti. Consentono di passare dati a un componente e di emettere eventi da un componente. Ecco una breve panoramica:
Ecco un esempio di come funzionano nel TaskComponent
:
task.ts
task.html
task.css
Nel nostro caso, task
è l'oggetto passato dal componente genitore TaskListComponent
al TaskComponent
.
Quando l'utente elimina un'attività o ne cambia lo stato, il TaskComponent
emette eventi a cui il componente genitore si iscrive.
@Output()
e EventEmitter
vengono utilizzati per notificare al componente genitore quando si verifica un evento nel componente figlio. Questi decorator permettono al componente figlio di comunicare azioni come l'eliminazione di un'attività o la modifica dello stato al genitore.
Il metodo deleteTask()
viene chiamato quando l'utente desidera eliminare un'attività. Emette l'id
dell'attività, consentendo al genitore di rimuovere l'attività dal proprio elenco.
Il metodo toggleTask()
alterna lo stato di completamento dell'attività e informa il componente genitore di questa modifica.
Come Funziona Tutto Insieme
-
TaskListComponent
passa un'attività aTaskComponent
utilizzando@Input()
; -
L'utente interagisce con l'attività (ad esempio cliccando su "Elimina");
-
TaskComponent
emette un evento (onDelete
oonToggle
) con l'id
dell'attività; -
TaskListComponent
intercetta l'evento e aggiorna l'elenco delle attività; -
Angular aggiorna automaticamente l'interfaccia utente in base ai dati aggiornati.
In questo modo, @Input()
e @Output()
consentono una comunicazione pulita ed efficiente tra i componenti, mantenendo la struttura organizzata e reattiva.
1. Cosa fa il decorator @Input()
in Angular?
2. Qual è lo scopo di EventEmitter
in Angular?
3. Nel TaskComponent
, cosa fa il decoratore @Output()
?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 3.13
Comunicazione tra Componenti in Angular
Scorri per mostrare il menu
Come Sono Collegati?
Il TaskListComponent
gestirà un array di task, dove ogni task è un oggetto con i campi id
, title
e completed
. Per visualizzare ciascun task, utilizzeremo il TaskComponent
.
Inoltre, il TaskComponent
comunicherà con il suo componente genitore riguardo alle azioni dell'utente, come quando un task deve essere eliminato o contrassegnato come completato. Questa interazione avverrà tramite l'emissione di eventi.
Implementazione della Logica di TaskListComponent
Creiamo un componente che sarà responsabile della gestione dell'elenco dei task. Al suo interno, definiremo un array di task e aggiungeremo anche due metodi — deleteTask()
e toggleStatus()
— per gestire i task.
task-list.ts
task-list.html
task-list.css
- L'elenco delle attività (
tasks
) è gestito all'interno del componente, rendendoTaskListComponent
il controller centrale; - Il metodo
deleteTask()
filtra l'attività tramite il suoid
; - Il metodo
toggleStatus()
trova l'attività tramiteid
e ne alterna lo statocompleted
.
Questo codice utilizza la direttiva *ngFor
per iterare sull'array tasks
e creare un TaskComponent
per ogni attività.
Analizzeremo più da vicino come funziona *ngFor
nella prossima sezione.
-
[task]="task"
— passa l'attività corrente al componente figlio affinché possa visualizzarla; -
(onDelete)="deleteTask($event)"
— ascolta l'eventoonDelete
dal figlio e richiamadeleteTask()
per rimuovere l'attività; -
(onToggle)="toggleStatus($event)"
— ascolta l'eventoonToggle
e richiamatoggleStatus()
per modificare lo stato dell'attività.
Decoratori: @Input() e @Output()
Ora è il momento di collegare il TaskComponent
con il TaskListComponent
, e per farlo useremo i decoratori @Input()
e @Output()
.
In Angular, i decoratori @Input()
e @Output()
sono strumenti fondamentali per la comunicazione tra componenti. Consentono di passare dati a un componente e di emettere eventi da un componente. Ecco una breve panoramica:
Ecco un esempio di come funzionano nel TaskComponent
:
task.ts
task.html
task.css
Nel nostro caso, task
è l'oggetto passato dal componente genitore TaskListComponent
al TaskComponent
.
Quando l'utente elimina un'attività o ne cambia lo stato, il TaskComponent
emette eventi a cui il componente genitore si iscrive.
@Output()
e EventEmitter
vengono utilizzati per notificare al componente genitore quando si verifica un evento nel componente figlio. Questi decorator permettono al componente figlio di comunicare azioni come l'eliminazione di un'attività o la modifica dello stato al genitore.
Il metodo deleteTask()
viene chiamato quando l'utente desidera eliminare un'attività. Emette l'id
dell'attività, consentendo al genitore di rimuovere l'attività dal proprio elenco.
Il metodo toggleTask()
alterna lo stato di completamento dell'attività e informa il componente genitore di questa modifica.
Come Funziona Tutto Insieme
-
TaskListComponent
passa un'attività aTaskComponent
utilizzando@Input()
; -
L'utente interagisce con l'attività (ad esempio cliccando su "Elimina");
-
TaskComponent
emette un evento (onDelete
oonToggle
) con l'id
dell'attività; -
TaskListComponent
intercetta l'evento e aggiorna l'elenco delle attività; -
Angular aggiorna automaticamente l'interfaccia utente in base ai dati aggiornati.
In questo modo, @Input()
e @Output()
consentono una comunicazione pulita ed efficiente tra i componenti, mantenendo la struttura organizzata e reattiva.
1. Cosa fa il decorator @Input()
in Angular?
2. Qual è lo scopo di EventEmitter
in Angular?
3. Nel TaskComponent
, cosa fa il decoratore @Output()
?
Grazie per i tuoi commenti!