В Angular, декоратор @Input()
позволяет дочернему компоненту взаимодействовать с родительским компонентом, получать от него данные и, следовательно, применять их внутри себя.
Он предоставляет механизм для передачи данных от родительского компонента к дочернему компоненту. С точки зрения дочернего компонента, свойства, которые помечены декоратором @Input
, выглядят как обычные свойства, значение которых устанавливается из вне.
Вот простой пример того, как это работает:
// родительский компонент
@Component({
selector: 'app-parent',
template: `<app-child [childProp]="parentProp"></app-child>`
})
export class ParentComponent {
parentProp = 'Hello, Child!';
}
// дочерний компонент
@Component({
selector: 'app-child',
template: `<p>{{childProp}}</p>`
})
export class ChildComponent {
@Input() childProp: string;
}
В этом примере, parentProp
– это свойство родительского компонента, которое мы хотим передать дочернему компоненту. Для этого мы используем синтаксис привязки к свойству в темплейте родительского компонента.
В компоненте потомке, мы используем декоратор @Input()
для childProp
– это сообщает Angular, что это свойство ожидает значения от родительского компонента.
Декоратор @Input()
является клюевым элементом в общении между компонентами в Angular и способствует соблюдению принципа единичной ответственности, позволяя каждому компоненту обрабатывать свою собственную функциональность.