Kommunikasjon Mellom Komponenter i Angular
Hvordan er de koblet sammen?
TaskListComponent
vil håndtere et array av oppgaver, hvor hver oppgave er et objekt med feltene id
, title
og completed
. For å vise hver oppgave, bruker vi TaskComponent
.
I tillegg vil TaskComponent
kommunisere med sin foreldreskomponent om brukerhandlinger, som når en oppgave skal slettes eller markeres som fullført. Denne interaksjonen skjer gjennom hendelsesutsending.
Implementering av logikken i TaskListComponent
La oss lage en komponent som har ansvar for å håndtere oppgavelisten. Inne i denne definerer vi et array av oppgaver og legger til to metoder — deleteTask()
og toggleStatus()
— for å håndtere oppgavestyring.
task-list.ts
task-list.html
task-list.css
- Listen over oppgaver (
tasks
) administreres inne i komponenten, noe som gjørTaskListComponent
til den sentrale kontrolleren; - Metoden
deleteTask()
filtrerer ut oppgaven basert på densid
; - Metoden
toggleStatus()
finner oppgaven vedid
og bytter denscompleted
-status.
Denne koden bruker direktivet *ngFor
til å iterere gjennom tasks
-arrayet og opprette en TaskComponent
for hver oppgave.
Vi skal se nærmere på hvordan *ngFor
fungerer i neste seksjon.
-
[task]="task"
— sender den aktuelle oppgaven til barnekomponenten slik at den kan vises; -
(onDelete)="deleteTask($event)"
— lytter etteronDelete
-hendelsen fra barnekomponenten og kallerdeleteTask()
for å fjerne oppgaven; -
(onToggle)="toggleStatus($event)"
— lytter etteronToggle
-hendelsen og kallertoggleStatus()
for å endre oppgavens status.
Dekoratører: @Input() og @Output()
Nå er det på tide å koble TaskComponent
med TaskListComponent
, og til dette bruker vi dekoratørene @Input()
og @Output()
.
I Angular er dekoratørene @Input()
og @Output()
sentrale verktøy for kommunikasjon mellom komponenter. De lar deg sende data inn i en komponent og sende hendelser ut av en komponent. Her er en kort oversikt:
Her er et eksempel på hvordan de fungerer i TaskComponent
:
task.ts
task.html
task.css
I vårt tilfelle er task
objektet som sendes fra forelderen TaskListComponent
inn i TaskComponent
.
Når brukeren enten sletter en oppgave eller endrer statusen, sender TaskComponent
ut hendelser som forelderen lytter etter.
@Output()
og EventEmitter
brukes for å varsle foreldekomponenten når noe skjer i barnekomponenten. Disse dekoratørene gjør det mulig for barnekomponenten å kommunisere handlinger som sletting av oppgaver eller statusendringer til forelderen.
Metoden deleteTask()
kalles når brukeren ønsker å slette en oppgave. Den emitterer oppgavens id
, slik at forelderen kan fjerne oppgaven fra listen sin.
Metoden toggleTask()
endrer oppgavens fullført-status og informerer foreldekomponenten om denne endringen.
Hvordan alt fungerer sammen
-
TaskListComponent
sender en oppgave tilTaskComponent
ved hjelp av@Input()
; -
Brukeren samhandler med oppgaven (for eksempel ved å klikke på "Slett");
-
TaskComponent
emitterer en hendelse (onDelete
elleronToggle
) med oppgavensid
; -
TaskListComponent
fanger opp hendelsen og oppdaterer oppgavelisten; -
Angular oppdaterer automatisk brukergrensesnittet basert på de oppdaterte dataene.
På denne måten muliggjør @Input()
og @Output()
ren og effektiv kommunikasjon mellom komponenter, og holder strukturen organisert og reaktiv.
1. Hva gjør dekoratøren @Input()
i Angular?
2. Hva er formålet med EventEmitter
i Angular?
3. Hva gjør TaskComponent
-dekortøren i @Output()
?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.13
Kommunikasjon Mellom Komponenter i Angular
Sveip for å vise menyen
Hvordan er de koblet sammen?
TaskListComponent
vil håndtere et array av oppgaver, hvor hver oppgave er et objekt med feltene id
, title
og completed
. For å vise hver oppgave, bruker vi TaskComponent
.
I tillegg vil TaskComponent
kommunisere med sin foreldreskomponent om brukerhandlinger, som når en oppgave skal slettes eller markeres som fullført. Denne interaksjonen skjer gjennom hendelsesutsending.
Implementering av logikken i TaskListComponent
La oss lage en komponent som har ansvar for å håndtere oppgavelisten. Inne i denne definerer vi et array av oppgaver og legger til to metoder — deleteTask()
og toggleStatus()
— for å håndtere oppgavestyring.
task-list.ts
task-list.html
task-list.css
- Listen over oppgaver (
tasks
) administreres inne i komponenten, noe som gjørTaskListComponent
til den sentrale kontrolleren; - Metoden
deleteTask()
filtrerer ut oppgaven basert på densid
; - Metoden
toggleStatus()
finner oppgaven vedid
og bytter denscompleted
-status.
Denne koden bruker direktivet *ngFor
til å iterere gjennom tasks
-arrayet og opprette en TaskComponent
for hver oppgave.
Vi skal se nærmere på hvordan *ngFor
fungerer i neste seksjon.
-
[task]="task"
— sender den aktuelle oppgaven til barnekomponenten slik at den kan vises; -
(onDelete)="deleteTask($event)"
— lytter etteronDelete
-hendelsen fra barnekomponenten og kallerdeleteTask()
for å fjerne oppgaven; -
(onToggle)="toggleStatus($event)"
— lytter etteronToggle
-hendelsen og kallertoggleStatus()
for å endre oppgavens status.
Dekoratører: @Input() og @Output()
Nå er det på tide å koble TaskComponent
med TaskListComponent
, og til dette bruker vi dekoratørene @Input()
og @Output()
.
I Angular er dekoratørene @Input()
og @Output()
sentrale verktøy for kommunikasjon mellom komponenter. De lar deg sende data inn i en komponent og sende hendelser ut av en komponent. Her er en kort oversikt:
Her er et eksempel på hvordan de fungerer i TaskComponent
:
task.ts
task.html
task.css
I vårt tilfelle er task
objektet som sendes fra forelderen TaskListComponent
inn i TaskComponent
.
Når brukeren enten sletter en oppgave eller endrer statusen, sender TaskComponent
ut hendelser som forelderen lytter etter.
@Output()
og EventEmitter
brukes for å varsle foreldekomponenten når noe skjer i barnekomponenten. Disse dekoratørene gjør det mulig for barnekomponenten å kommunisere handlinger som sletting av oppgaver eller statusendringer til forelderen.
Metoden deleteTask()
kalles når brukeren ønsker å slette en oppgave. Den emitterer oppgavens id
, slik at forelderen kan fjerne oppgaven fra listen sin.
Metoden toggleTask()
endrer oppgavens fullført-status og informerer foreldekomponenten om denne endringen.
Hvordan alt fungerer sammen
-
TaskListComponent
sender en oppgave tilTaskComponent
ved hjelp av@Input()
; -
Brukeren samhandler med oppgaven (for eksempel ved å klikke på "Slett");
-
TaskComponent
emitterer en hendelse (onDelete
elleronToggle
) med oppgavensid
; -
TaskListComponent
fanger opp hendelsen og oppdaterer oppgavelisten; -
Angular oppdaterer automatisk brukergrensesnittet basert på de oppdaterte dataene.
På denne måten muliggjør @Input()
og @Output()
ren og effektiv kommunikasjon mellom komponenter, og holder strukturen organisert og reaktiv.
1. Hva gjør dekoratøren @Input()
i Angular?
2. Hva er formålet med EventEmitter
i Angular?
3. Hva gjør TaskComponent
-dekortøren i @Output()
?
Takk for tilbakemeldingene dine!