Kommunikation Mellem Komponenter i Angular
Hvordan er de forbundet?
TaskListComponent
vil administrere et array af opgaver, hvor hver opgave er et objekt med felterne id
, title
og completed
. For at vise hver opgave bruger vi TaskComponent
.
Derudover vil TaskComponent
kommunikere med sin overordnede komponent om brugerhandlinger, såsom når en opgave skal slettes eller markeres som fuldført. Denne interaktion sker gennem event-emission.
Implementering af logikken i TaskListComponent
Opret en komponent, der har ansvaret for at administrere opgavelisten. Inden i den defineres et array af opgaver samt to metoder — deleteTask()
og toggleStatus()
— til håndtering af opgavestyring.
task-list.ts
task-list.html
task-list.css
- Listen over opgaver (
tasks
) administreres inde i komponenten, hvilket gørTaskListComponent
til den centrale controller; - Metoden
deleteTask()
filtrerer opgaven fra ved hjælp af densid
; - Metoden
toggleStatus()
finder opgaven viaid
og skifter denscompleted
status.
Denne kode anvender direktivet *ngFor
til at iterere gennem tasks
arrayet og oprette en TaskComponent
for hver opgave.
Vi ser nærmere på, hvordan *ngFor
fungerer i næste afsnit.
-
[task]="task"
— sender den aktuelle opgave til børnekomponenten, så den kan vises; -
(onDelete)="deleteTask($event)"
— lytter efteronDelete
-begivenheden fra barnet og kalderdeleteTask()
for at fjerne opgaven; -
(onToggle)="toggleStatus($event)"
— lytter efteronToggle
-begivenheden og kaldertoggleStatus()
for at ændre opgavens status.
Dekoratorer: @Input() og @Output()
Nu er det tid til at forbinde TaskComponent
med TaskListComponent
, og til det bruger vi dekoratorerne @Input()
og @Output()
.
I Angular er dekoratorerne @Input()
og @Output()
centrale værktøjer til kommunikation mellem komponenter. De gør det muligt at sende data ind i en komponent og udsende begivenheder ud af en komponent. Her er et kort overblik:
Her er et eksempel på, hvordan de fungerer i TaskComponent
:
task.ts
task.html
task.css
I dette tilfælde er task
objektet, der overføres fra forældrekomponenten TaskListComponent
til TaskComponent
.
Når brugeren enten sletter en opgave eller ændrer dens status, udsender TaskComponent
hændelser, som forældrekomponenten lytter efter.
@Output()
og EventEmitter
bruges til at give besked til forældrekomponenten, når der sker noget i barnekomponenten. Disse dekoratører gør det muligt for barnekomponenten at kommunikere handlinger som sletning af opgaver eller statusændringer til forælderen.
Metoden deleteTask()
kaldes, når brugeren ønsker at slette en opgave. Den udsender opgavens id
, hvilket gør det muligt for forælderen at fjerne opgaven fra sin liste.
Metoden toggleTask()
ændrer opgavens fuldførte status og informerer forældrekomponenten om denne ændring.
Sådan fungerer det hele sammen
-
TaskListComponent
sender en opgave tilTaskComponent
ved hjælp af@Input()
; -
Brugeren interagerer med opgaven (f.eks. ved at klikke på "Slet");
-
TaskComponent
udsender en begivenhed (onDelete
elleronToggle
) med opgavensid
; -
TaskListComponent
opfanger begivenheden og opdaterer opgavelisten; -
Angular opdaterer automatisk brugergrænsefladen baseret på de opdaterede data.
På denne måde muliggør @Input()
og @Output()
en ren og effektiv kommunikation mellem komponenter, hvilket holder strukturen organiseret og reaktiv.
1. Hvad gør dekoratøren @Input()
i Angular?
2. Hvad er formålet med EventEmitter
i Angular?
3. Hvad gør TaskComponent
-dekorationen i @Output()
?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 3.13
Kommunikation Mellem Komponenter i Angular
Stryg for at vise menuen
Hvordan er de forbundet?
TaskListComponent
vil administrere et array af opgaver, hvor hver opgave er et objekt med felterne id
, title
og completed
. For at vise hver opgave bruger vi TaskComponent
.
Derudover vil TaskComponent
kommunikere med sin overordnede komponent om brugerhandlinger, såsom når en opgave skal slettes eller markeres som fuldført. Denne interaktion sker gennem event-emission.
Implementering af logikken i TaskListComponent
Opret en komponent, der har ansvaret for at administrere opgavelisten. Inden i den defineres et array af opgaver samt to metoder — deleteTask()
og toggleStatus()
— til håndtering af opgavestyring.
task-list.ts
task-list.html
task-list.css
- Listen over opgaver (
tasks
) administreres inde i komponenten, hvilket gørTaskListComponent
til den centrale controller; - Metoden
deleteTask()
filtrerer opgaven fra ved hjælp af densid
; - Metoden
toggleStatus()
finder opgaven viaid
og skifter denscompleted
status.
Denne kode anvender direktivet *ngFor
til at iterere gennem tasks
arrayet og oprette en TaskComponent
for hver opgave.
Vi ser nærmere på, hvordan *ngFor
fungerer i næste afsnit.
-
[task]="task"
— sender den aktuelle opgave til børnekomponenten, så den kan vises; -
(onDelete)="deleteTask($event)"
— lytter efteronDelete
-begivenheden fra barnet og kalderdeleteTask()
for at fjerne opgaven; -
(onToggle)="toggleStatus($event)"
— lytter efteronToggle
-begivenheden og kaldertoggleStatus()
for at ændre opgavens status.
Dekoratorer: @Input() og @Output()
Nu er det tid til at forbinde TaskComponent
med TaskListComponent
, og til det bruger vi dekoratorerne @Input()
og @Output()
.
I Angular er dekoratorerne @Input()
og @Output()
centrale værktøjer til kommunikation mellem komponenter. De gør det muligt at sende data ind i en komponent og udsende begivenheder ud af en komponent. Her er et kort overblik:
Her er et eksempel på, hvordan de fungerer i TaskComponent
:
task.ts
task.html
task.css
I dette tilfælde er task
objektet, der overføres fra forældrekomponenten TaskListComponent
til TaskComponent
.
Når brugeren enten sletter en opgave eller ændrer dens status, udsender TaskComponent
hændelser, som forældrekomponenten lytter efter.
@Output()
og EventEmitter
bruges til at give besked til forældrekomponenten, når der sker noget i barnekomponenten. Disse dekoratører gør det muligt for barnekomponenten at kommunikere handlinger som sletning af opgaver eller statusændringer til forælderen.
Metoden deleteTask()
kaldes, når brugeren ønsker at slette en opgave. Den udsender opgavens id
, hvilket gør det muligt for forælderen at fjerne opgaven fra sin liste.
Metoden toggleTask()
ændrer opgavens fuldførte status og informerer forældrekomponenten om denne ændring.
Sådan fungerer det hele sammen
-
TaskListComponent
sender en opgave tilTaskComponent
ved hjælp af@Input()
; -
Brugeren interagerer med opgaven (f.eks. ved at klikke på "Slet");
-
TaskComponent
udsender en begivenhed (onDelete
elleronToggle
) med opgavensid
; -
TaskListComponent
opfanger begivenheden og opdaterer opgavelisten; -
Angular opdaterer automatisk brugergrænsefladen baseret på de opdaterede data.
På denne måde muliggør @Input()
og @Output()
en ren og effektiv kommunikation mellem komponenter, hvilket holder strukturen organiseret og reaktiv.
1. Hvad gør dekoratøren @Input()
i Angular?
2. Hvad er formålet med EventEmitter
i Angular?
3. Hvad gør TaskComponent
-dekorationen i @Output()
?
Tak for dine kommentarer!