Kommunikation Mellem Komponenter i Angular
Hvordan er de forbundet?
TaskListComponent administrerer et array af opgaver, hvor hver opgave er et objekt med felterne id, title og completed. For at vise hver opgave anvendes TaskComponent.
Derudover kommunikerer TaskComponent 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 logik for TaskListComponent
Opret en komponent, der har ansvaret for at administrere opgavelisten. Inden i denne 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ørTaskListComponenttil den centrale controller; - Metoden
deleteTask()filtrerer opgaven fra ved hjælp af densid; - Metoden
toggleStatus()finder opgaven viaidog 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 vise den; -
(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 den overordnede TaskListComponent til TaskComponent.
Når brugeren enten sletter en opgave eller ændrer dens status, udsender TaskComponent begivenheder, som den overordnede komponent lytter efter.
@Output() og EventEmitter bruges til at give besked til forældrekomponenten, når noget sker 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() skifter opgavens fuldførte status og informerer forældrekomponenten om denne ændring.
Sådan fungerer det hele sammen
-
TaskListComponentsender en opgave tilTaskComponentved hjælp af@Input(); -
Brugeren interagerer med opgaven (for eksempel ved at klikke på "Slet");
-
TaskComponentudsender en begivenhed (onDeleteelleronToggle) med opgavensid; -
TaskListComponentopfanger begivenheden og opdaterer opgavelisten; -
Angular opdaterer automatisk brugergrænsefladen baseret på de opdaterede data.
På denne måde muliggør @Input() og @Output() 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
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 Mellem Komponenter i Angular
Stryg for at vise menuen
Hvordan er de forbundet?
TaskListComponent administrerer et array af opgaver, hvor hver opgave er et objekt med felterne id, title og completed. For at vise hver opgave anvendes TaskComponent.
Derudover kommunikerer TaskComponent 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 logik for TaskListComponent
Opret en komponent, der har ansvaret for at administrere opgavelisten. Inden i denne 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ørTaskListComponenttil den centrale controller; - Metoden
deleteTask()filtrerer opgaven fra ved hjælp af densid; - Metoden
toggleStatus()finder opgaven viaidog 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 vise den; -
(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 den overordnede TaskListComponent til TaskComponent.
Når brugeren enten sletter en opgave eller ændrer dens status, udsender TaskComponent begivenheder, som den overordnede komponent lytter efter.
@Output() og EventEmitter bruges til at give besked til forældrekomponenten, når noget sker 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() skifter opgavens fuldførte status og informerer forældrekomponenten om denne ændring.
Sådan fungerer det hele sammen
-
TaskListComponentsender en opgave tilTaskComponentved hjælp af@Input(); -
Brugeren interagerer med opgaven (for eksempel ved at klikke på "Slet");
-
TaskComponentudsender en begivenhed (onDeleteelleronToggle) med opgavensid; -
TaskListComponentopfanger begivenheden og opdaterer opgavelisten; -
Angular opdaterer automatisk brugergrænsefladen baseret på de opdaterede data.
På denne måde muliggør @Input() og @Output() 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!