Kommunikointi Komponenttien Välillä Angularissa
Kuinka ne ovat yhteydessä?
TaskListComponent hallinnoi tehtävätaulukkoa, jossa jokainen tehtävä on olio, jolla on kentät id, title ja completed. Jokaisen tehtävän näyttämiseen käytetään TaskComponent-komponenttia.
Lisäksi TaskComponent kommunikoi ylätason komponenttinsa kanssa käyttäjän toimista, kuten tehtävän poistamisesta tai merkitsemisestä valmiiksi. Tämä vuorovaikutus tapahtuu tapahtumien lähettämisen kautta.
TaskListComponent-logiikan toteutus
Luodaan komponentti, joka vastaa tehtävälistan hallinnasta. Sen sisällä määritellään tehtävätaulukko ja lisätään kaksi metodia — deleteTask() ja toggleStatus() — tehtävien hallintaan.
task-list.ts
task-list.html
task-list.css
- Tehtävälista (
tasks) hallitaan komponentin sisällä, jolloinTaskListComponenttoimii keskusohjaimena; deleteTask()-metodi suodattaa tehtävän pois senid:n perusteella;toggleStatus()-metodi etsii tehtävänid:n perusteella ja vaihtaa sencompleted-tilaa.
Tämä koodi käyttää *ngFor-direktiiviä silmukoimaan tasks-taulukon läpi ja luomaan jokaiselle tehtävälle oman TaskComponent-komponentin.
Tarkastelemme seuraavassa osiossa tarkemmin, miten *ngFor toimii.
-
[task]="task"— välittää nykyisen tehtävän lapsikomponentille, jotta se voi näyttää sen; -
(onDelete)="deleteTask($event)"— kuuntelee lapsikomponentinonDelete-tapahtumaa ja kutsuudeleteTask()-metodia poistaakseen tehtävän; -
(onToggle)="toggleStatus($event)"— kuunteleeonToggle-tapahtumaa ja kutsuutoggleStatus()-metodia muuttaakseen tehtävän tilaa.
Dekoraattorit: @Input() ja @Output()
Nyt on aika yhdistää TaskComponent ja TaskListComponent, ja siihen käytämme dekoraattoreita @Input() ja @Output().
Angularissa @Input() ja @Output() -dekoraattorit ovat keskeisiä työkaluja komponenttien välisessä viestinnässä. Niiden avulla voit välittää tietoa komponenttiin ja lähettää tapahtumia ulos komponentista. Tässä lyhyt yhteenveto:
Tässä on esimerkki siitä, miten ne toimivat TaskComponent-komponentissa:
task.ts
task.html
task.css
Tässä tapauksessa task on olio, joka välitetään vanhemmalta TaskListComponent-komponentilta TaskComponent-komponentille.
Kun käyttäjä joko poistaa tehtävän tai vaihtaa sen tilaa, TaskComponent lähettää tapahtumia, joita vanhempi komponentti kuuntelee.
@Output() ja EventEmitter käytetään ilmoittamaan vanhemmalle komponentille, kun lapsikomponentissa tapahtuu jotain. Näiden dekorointien avulla lapsikomponentti voi välittää toimintoja, kuten tehtävien poistot tai tilamuutokset, vanhemmalle komponentille.
deleteTask()-metodia kutsutaan, kun käyttäjä haluaa poistaa tehtävän. Se lähettää tehtävän id:n, jolloin vanhempi voi poistaa tehtävän listaltaan.
toggleTask()-metodi vaihtaa tehtävän valmiustilaa ja ilmoittaa tästä muutoksesta vanhemmalle komponentille.
Miten kaikki toimii yhdessä
-
TaskListComponentvälittää tehtävänTaskComponent-komponentille käyttäen@Input()-dekorointia; -
Käyttäjä on vuorovaikutuksessa tehtävän kanssa (esimerkiksi klikkaa "Poista");
-
TaskComponentlähettää tapahtuman (onDeletetaionToggle) tehtävänid:n kanssa; -
TaskListComponentvastaanottaa tapahtuman ja päivittää tehtävälistan; -
Angular päivittää käyttöliittymän automaattisesti päivitetyn datan perusteella.
Näin @Input() ja @Output() mahdollistavat selkeän ja tehokkaan viestinnän komponenttien välillä, pitäen rakenteen järjestelmällisenä ja reaktiivisena.
1. Mitä @Input()-dekorointi tekee Angularissa?
2. Mikä on EventEmitter:n tarkoitus Angularissa?
3. Mitä TaskComponent-koristetta tekee @Output()-komponentissa?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.13
Kommunikointi Komponenttien Välillä Angularissa
Pyyhkäise näyttääksesi valikon
Kuinka ne ovat yhteydessä?
TaskListComponent hallinnoi tehtävätaulukkoa, jossa jokainen tehtävä on olio, jolla on kentät id, title ja completed. Jokaisen tehtävän näyttämiseen käytetään TaskComponent-komponenttia.
Lisäksi TaskComponent kommunikoi ylätason komponenttinsa kanssa käyttäjän toimista, kuten tehtävän poistamisesta tai merkitsemisestä valmiiksi. Tämä vuorovaikutus tapahtuu tapahtumien lähettämisen kautta.
TaskListComponent-logiikan toteutus
Luodaan komponentti, joka vastaa tehtävälistan hallinnasta. Sen sisällä määritellään tehtävätaulukko ja lisätään kaksi metodia — deleteTask() ja toggleStatus() — tehtävien hallintaan.
task-list.ts
task-list.html
task-list.css
- Tehtävälista (
tasks) hallitaan komponentin sisällä, jolloinTaskListComponenttoimii keskusohjaimena; deleteTask()-metodi suodattaa tehtävän pois senid:n perusteella;toggleStatus()-metodi etsii tehtävänid:n perusteella ja vaihtaa sencompleted-tilaa.
Tämä koodi käyttää *ngFor-direktiiviä silmukoimaan tasks-taulukon läpi ja luomaan jokaiselle tehtävälle oman TaskComponent-komponentin.
Tarkastelemme seuraavassa osiossa tarkemmin, miten *ngFor toimii.
-
[task]="task"— välittää nykyisen tehtävän lapsikomponentille, jotta se voi näyttää sen; -
(onDelete)="deleteTask($event)"— kuuntelee lapsikomponentinonDelete-tapahtumaa ja kutsuudeleteTask()-metodia poistaakseen tehtävän; -
(onToggle)="toggleStatus($event)"— kuunteleeonToggle-tapahtumaa ja kutsuutoggleStatus()-metodia muuttaakseen tehtävän tilaa.
Dekoraattorit: @Input() ja @Output()
Nyt on aika yhdistää TaskComponent ja TaskListComponent, ja siihen käytämme dekoraattoreita @Input() ja @Output().
Angularissa @Input() ja @Output() -dekoraattorit ovat keskeisiä työkaluja komponenttien välisessä viestinnässä. Niiden avulla voit välittää tietoa komponenttiin ja lähettää tapahtumia ulos komponentista. Tässä lyhyt yhteenveto:
Tässä on esimerkki siitä, miten ne toimivat TaskComponent-komponentissa:
task.ts
task.html
task.css
Tässä tapauksessa task on olio, joka välitetään vanhemmalta TaskListComponent-komponentilta TaskComponent-komponentille.
Kun käyttäjä joko poistaa tehtävän tai vaihtaa sen tilaa, TaskComponent lähettää tapahtumia, joita vanhempi komponentti kuuntelee.
@Output() ja EventEmitter käytetään ilmoittamaan vanhemmalle komponentille, kun lapsikomponentissa tapahtuu jotain. Näiden dekorointien avulla lapsikomponentti voi välittää toimintoja, kuten tehtävien poistot tai tilamuutokset, vanhemmalle komponentille.
deleteTask()-metodia kutsutaan, kun käyttäjä haluaa poistaa tehtävän. Se lähettää tehtävän id:n, jolloin vanhempi voi poistaa tehtävän listaltaan.
toggleTask()-metodi vaihtaa tehtävän valmiustilaa ja ilmoittaa tästä muutoksesta vanhemmalle komponentille.
Miten kaikki toimii yhdessä
-
TaskListComponentvälittää tehtävänTaskComponent-komponentille käyttäen@Input()-dekorointia; -
Käyttäjä on vuorovaikutuksessa tehtävän kanssa (esimerkiksi klikkaa "Poista");
-
TaskComponentlähettää tapahtuman (onDeletetaionToggle) tehtävänid:n kanssa; -
TaskListComponentvastaanottaa tapahtuman ja päivittää tehtävälistan; -
Angular päivittää käyttöliittymän automaattisesti päivitetyn datan perusteella.
Näin @Input() ja @Output() mahdollistavat selkeän ja tehokkaan viestinnän komponenttien välillä, pitäen rakenteen järjestelmällisenä ja reaktiivisena.
1. Mitä @Input()-dekorointi tekee Angularissa?
2. Mikä on EventEmitter:n tarkoitus Angularissa?
3. Mitä TaskComponent-koristetta tekee @Output()-komponentissa?
Kiitos palautteestasi!