@Input आणि @Output हे मानक मार्ग आहेत ज्यामार्फत पालक आणि बाल घटक संचार करतात: @Input डेटा पास करते (पालक → मुल), आणि इव्हेंट्स पाठवते (मुल → पालक). हे सार्वभौमिक "props खाली, events वर" पद्धत प्रतिबिंबित करते.
@Input आणि @Output हे मानक मार्ग आहेत ज्यामार्फत पालक आणि बाल घटक संचार करतात: @Input डेटा पास करते (पालक → मुल), आणि इव्हेंट्स पाठवते (मुल → पालक). हे सार्वभौमिक "props खाली, events वर" पद्धत प्रतिबिंबित करते.
@Output// child: UserCardComponent
import { Component, Input } from "@angular/core";
@Component({ selector: "app-user-card", template: `<h2>{{ user.name }}</h2>` })
export class UserCardComponent {
@Input() user!: User; // receives data from the parent
@Input() showEmail = false; // with a default
}
<!-- parent passes data via property binding -->
<app-user-card [user]="currentUser" [showEmail]="true"></app-user-card>
// child emits an event the parent can listen to
import { Component, Output, EventEmitter } from "@angular/core";
@Component({
selector: "app-user-card",
template: `<button (click)="onDelete()">Delete</button>`,
})
export class UserCardComponent {
@Output() deleted = new EventEmitter<number>(); // declares an output event
onDelete() {
this.deleted.emit(this.user.id); // emit with a payload
}
}
<!-- parent listens via event binding -->
<app-user-card [user]="u" (deleted)="removeUser($event)"></app-user-card>
बाल घटक EventEmitter द्वारे उत्सर्जित करते; पालक घटक (eventName) सह बांधते आणि पेलोड $event म्हणून प्राप्त करते. बाल कधीही पालकचे डेटा थेट बदलत नाही — तो उत्सर्जन करून क्रिया विनंती करते.
Parent ──[user]──────────────→ Child (@Input: data down)
Parent ←──(deleted)=removeUser─ Child (@Output: events up)
name = input<string>(); // signal-based @Input (newer Angular)
deleted = output<number>(); // signal-based @Output
अलीकडील Angular सिग्नल-आधारित input()/output() फंक्शन्स पर्यायी म्हणून जोडते.
@Input/@Output Angular मध्ये पालक-मुल संचार आणि पुन:वापरयोग्य घटकांचा मूल आहेत — ते एक-मार्गी डेटा प्रवाह (inputs द्वारे खाली, events द्वारे वर) लागू करतात जो डेटा अनुमानित आणि घटक विघटित ठेवतात.
Angular UI ची कोणतीही नॉन-ट्रिव्हियल रचना करण्यासाठी या जोडीचे समज आवश्यक आहे; असंबंधित घटकांमध्ये संचारासाठी, आप्टी सामायिक सेवा किंवा स्थिति लायब्रेरी वापरा.