Kommunikation Mellan Komponenter i Angular
Hur är de kopplade?
TaskListComponent kommer att hantera en array av uppgifter, där varje uppgift är ett objekt med fälten id, title och completed. För att visa varje uppgift kommer vi att använda TaskComponent.
Dessutom kommer TaskComponent att kommunicera med sin föräldrakomponent om användaråtgärder, såsom när en uppgift ska tas bort eller markeras som slutförd. Denna interaktion sker genom händelseutlösning.
Implementering av logik för TaskListComponent
Skapa en komponent som ansvarar för att hantera uppgiftslistan. Inuti den definieras en array av uppgifter samt två metoder — deleteTask() och toggleStatus() — för att hantera uppgifterna.
task-list.ts
task-list.html
task-list.css
- Listan över uppgifter (
tasks) hanteras inom komponenten, vilket görTaskListComponenttill den centrala kontrollenheten; - Metoden
deleteTask()filtrerar bort uppgiften med dessid; - Metoden
toggleStatus()hittar uppgiften viaidoch växlar desscompleted-status.
Denna kod använder direktivet *ngFor för att iterera genom arrayen tasks och skapa en TaskComponent för varje uppgift.
Vi kommer att titta närmare på hur *ngFor fungerar i nästa avsnitt.
-
[task]="task"— skickar den aktuella uppgiften till barnkomponenten så att den kan visas; -
(onDelete)="deleteTask($event)"— lyssnar påonDelete-händelsen från barnkomponenten och anropardeleteTask()för att ta bort uppgiften; -
(onToggle)="toggleStatus($event)"— lyssnar påonToggle-händelsen och anropartoggleStatus()för att ändra uppgiftens status.
Dekoratörer: @Input() och @Output()
Nu är det dags att koppla samman TaskComponent med TaskListComponent, och för detta använder vi dekoratörerna @Input() och @Output().
I Angular är dekoratörerna @Input() och @Output() centrala verktyg för kommunikation mellan komponenter. De möjliggör att data skickas in i en komponent och att händelser emitteras ut från en komponent. Här är en snabb översikt:
Här är ett exempel på hur de fungerar i TaskComponent:
task.ts
task.html
task.css
I vårt fall är task objektet som skickas från föräldrakomponenten TaskListComponent till TaskComponent.
När användaren antingen tar bort en uppgift eller ändrar dess status, skickar TaskComponent ut händelser som föräldrakomponenten lyssnar på.
@Output() och EventEmitter används för att meddela föräldrakomponenten när något händer i barnkomponenten. Dessa dekoratörer möjliggör för barnkomponenten att kommunicera åtgärder som borttagning av uppgifter eller statusändringar till föräldern.
Metoden deleteTask() anropas när användaren vill ta bort en uppgift. Den emitterar uppgiftens id, vilket gör det möjligt för föräldern att ta bort uppgiften från sin lista.
Metoden toggleTask() växlar uppgiftens slutförandestatus och informerar föräldrakomponenten om denna förändring.
Hur allt fungerar tillsammans
-
TaskListComponentskickar en uppgift tillTaskComponentmed hjälp av@Input(); -
Användaren interagerar med uppgiften (till exempel genom att klicka på "Delete");
-
TaskComponentemitterar en händelse (onDeleteelleronToggle) med uppgiftensid; -
TaskListComponentfångar händelsen och uppdaterar uppgiftslistan; -
Angular uppdaterar automatiskt användargränssnittet baserat på de uppdaterade uppgifterna.
På detta sätt möjliggör @Input() och @Output() en tydlig och effektiv kommunikation mellan komponenter, vilket håller strukturen organiserad och reaktiv.
1. Vad gör dekoratören @Input() i Angular?
2. Vad är syftet med EventEmitter i Angular?
3. Vad gör dekoratorn TaskComponent i @Output()?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Kommunikation Mellan Komponenter i Angular
Svep för att visa menyn
Hur är de kopplade?
TaskListComponent kommer att hantera en array av uppgifter, där varje uppgift är ett objekt med fälten id, title och completed. För att visa varje uppgift kommer vi att använda TaskComponent.
Dessutom kommer TaskComponent att kommunicera med sin föräldrakomponent om användaråtgärder, såsom när en uppgift ska tas bort eller markeras som slutförd. Denna interaktion sker genom händelseutlösning.
Implementering av logik för TaskListComponent
Skapa en komponent som ansvarar för att hantera uppgiftslistan. Inuti den definieras en array av uppgifter samt två metoder — deleteTask() och toggleStatus() — för att hantera uppgifterna.
task-list.ts
task-list.html
task-list.css
- Listan över uppgifter (
tasks) hanteras inom komponenten, vilket görTaskListComponenttill den centrala kontrollenheten; - Metoden
deleteTask()filtrerar bort uppgiften med dessid; - Metoden
toggleStatus()hittar uppgiften viaidoch växlar desscompleted-status.
Denna kod använder direktivet *ngFor för att iterera genom arrayen tasks och skapa en TaskComponent för varje uppgift.
Vi kommer att titta närmare på hur *ngFor fungerar i nästa avsnitt.
-
[task]="task"— skickar den aktuella uppgiften till barnkomponenten så att den kan visas; -
(onDelete)="deleteTask($event)"— lyssnar påonDelete-händelsen från barnkomponenten och anropardeleteTask()för att ta bort uppgiften; -
(onToggle)="toggleStatus($event)"— lyssnar påonToggle-händelsen och anropartoggleStatus()för att ändra uppgiftens status.
Dekoratörer: @Input() och @Output()
Nu är det dags att koppla samman TaskComponent med TaskListComponent, och för detta använder vi dekoratörerna @Input() och @Output().
I Angular är dekoratörerna @Input() och @Output() centrala verktyg för kommunikation mellan komponenter. De möjliggör att data skickas in i en komponent och att händelser emitteras ut från en komponent. Här är en snabb översikt:
Här är ett exempel på hur de fungerar i TaskComponent:
task.ts
task.html
task.css
I vårt fall är task objektet som skickas från föräldrakomponenten TaskListComponent till TaskComponent.
När användaren antingen tar bort en uppgift eller ändrar dess status, skickar TaskComponent ut händelser som föräldrakomponenten lyssnar på.
@Output() och EventEmitter används för att meddela föräldrakomponenten när något händer i barnkomponenten. Dessa dekoratörer möjliggör för barnkomponenten att kommunicera åtgärder som borttagning av uppgifter eller statusändringar till föräldern.
Metoden deleteTask() anropas när användaren vill ta bort en uppgift. Den emitterar uppgiftens id, vilket gör det möjligt för föräldern att ta bort uppgiften från sin lista.
Metoden toggleTask() växlar uppgiftens slutförandestatus och informerar föräldrakomponenten om denna förändring.
Hur allt fungerar tillsammans
-
TaskListComponentskickar en uppgift tillTaskComponentmed hjälp av@Input(); -
Användaren interagerar med uppgiften (till exempel genom att klicka på "Delete");
-
TaskComponentemitterar en händelse (onDeleteelleronToggle) med uppgiftensid; -
TaskListComponentfångar händelsen och uppdaterar uppgiftslistan; -
Angular uppdaterar automatiskt användargränssnittet baserat på de uppdaterade uppgifterna.
På detta sätt möjliggör @Input() och @Output() en tydlig och effektiv kommunikation mellan komponenter, vilket håller strukturen organiserad och reaktiv.
1. Vad gör dekoratören @Input() i Angular?
2. Vad är syftet med EventEmitter i Angular?
3. Vad gör dekoratorn TaskComponent i @Output()?
Tack för dina kommentarer!