Outputs met output()
Zend gebeurtenissen uit met de nieuwe output-API.
Outputs met output() is een gratis Angular Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Angular Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Angular Academy bevat in totaal 4 lessen.
Outputs in het signaltijdperk
Naast signal-inputs biedt modern Angular de functie output() om gebeurtenissen van componenten te declareren. Deze vervangt de klassieke @Output met EventEmitter.
Een output declareren
Roep output() aan om een gebeurtenis te maken die een component kan uitzenden. Geef een generiek type op voor de payload.
import { Component, output } from "@angular/core";
@Component({ selector: "app-counter", template: "" })
export class CounterComponent {
changed = output<number>();
}Een gebeurtenis uitzenden
Roep emit aan op de output om een waarde naar luisteraars te sturen.
export class CounterComponent {
changed = output<number>();
count = 0;
inc() {
this.count++;
this.changed.emit(this.count);
}
}Luisteren vanuit de ouder
De ouder abonneert zich met event binding en gebruikt $event voor de uitgezonden payload.
<app-counter (changed)="onChange($event)"></app-counter>
// parent
onChange(value: number) {
this.total = value;
}Outputs zonder payload
Gebruik voor gebeurtenissen zonder gegevens output<void>() en zend ze uit zonder argument.
closed = output<void>();
close() {
this.closed.emit();
}output versus EventEmitter
De API output() is eenvoudiger en niet gekoppeld aan RxJS. U maakt geen instantie van EventEmitter; de functie doet dit voor u.
// classic:
@Output() changed = new EventEmitter<number>();
// modern:
changed = output<number>();Een output een alias geven
Maak met de optie alias een andere openbare naam voor de gebeurtenis beschikbaar.
valueChange = output<number>({ alias: "change" });
<!-- parent listens with the alias -->
<app-counter (change)="onChange($event)"></app-counter>Outputs en two-way binding
Door een input te koppelen aan een output met de naam xChange maakt u two-way binding mogelijk, hoewel model() dit beknopter doet.
value = input(0);
valueChange = output<number>();
// enables [(value)] on the parentOutputs afleiden uit Observables
De interophulp outputFromObservable zet een Observable om in een output en vormt zo een brug tussen RxJS-streams en de nieuwe API.
import { outputFromObservable } from "@angular/core/rxjs-interop";
clicks = outputFromObservable(this.clicks$);Typeveiligheid
Omdat outputs getypeerd zijn, wordt de parameter van de handler van de ouder gecontroleerd aan de hand van het type van de uitgezonden payload. Zo worden mismatches tijdens het compileren gevonden.
selected = output<{ id: number }>();
<!-- parent must accept { id: number } -->
<app-list (selected)="pick($event)"></app-list>Wanneer gebruikt u output?
Geef voor nieuwe componenten de voorkeur aan output(): deze is lichter, typeveilig en sluit natuurlijk aan op signal-inputs om communicatie tussen componenten vorm te geven.
Korte controle
Test je begrip van de outputfunctie.
Samenvatting
De functie output() declareert getypeerde gebeurtenissen zonder een EventEmitter. Zend gebeurtenissen uit met emit(), luister via event binding en $event, geef indien nodig een alias en combineer met signal-inputs voor heldere communicatie tussen componenten.
Leer HTML met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 38
- Lessen
- 144
Veelgestelde vragen
Is de les “Outputs met output()” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Angular Academy, waaronder “Outputs met output()”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Angular Academy bevat in totaal 4 lessen.
Wat leer ik in “Outputs met output()”?
Zend gebeurtenissen uit met de nieuwe output-API. Je oefent met Angular Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Angular Academy te beginnen?
Ervaring vooraf is niet nodig. Angular Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Outputs met output()”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Angular Academy?
Ja. Elke les over Angular Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Signalinputs met input()
- Vereiste en getransformeerde inputs
- Outputs met output()
- Viewqueries met viewChild