Взаємодія між Компонентами в Angular
Як вони пов'язані?
TaskListComponent керуватиме масивом завдань, де кожне завдання є об'єктом з полями id, title та completed. Для відображення кожного завдання ми використаємо TaskComponent.
Крім того, TaskComponent буде повідомляти батьківський компонент про дії користувача, наприклад, коли завдання потрібно видалити або позначити як виконане. Ця взаємодія відбуватиметься через генерацію подій.
Реалізація логіки TaskListComponent
Створимо компонент, який відповідатиме за керування списком завдань. У ньому ми визначимо масив завдань, а також додамо два методи — deleteTask() та toggleStatus() — для обробки керування завданнями.
task-list.ts
task-list.html
task-list.css
- Список завдань (
tasks) управляється всередині компонента, що робитьTaskListComponentцентральним контролером; - Метод
deleteTask()відфільтровує завдання за йогоid; - Метод
toggleStatus()знаходить завдання заidта перемикає його статусcompleted.
Цей код використовує директиву *ngFor для ітерації по масиву tasks та створення TaskComponent для кожного завдання.
Детальніше розглянемо, як працює *ngFor, у наступному розділі.
-
[task]="task"— передає поточне завдання дочірньому компоненту для відображення; -
(onDelete)="deleteTask($event)"— прослуховує подіюonDeleteвід дочірнього компонента та викликаєdeleteTask()для видалення завдання; -
(onToggle)="toggleStatus($event)"— прослуховує подіюonToggleта викликаєtoggleStatus()для зміни статусу завдання.
Декоратори: @Input() та @Output()
Тепер настав час з'єднати TaskComponent з TaskListComponent, і для цього ми використаємо декоратори @Input() та @Output().
В Angular декоратори @Input() та @Output() є ключовими інструментами для комунікації між компонентами. Вони дозволяють передавати дані в компонент і генерувати події з компонента. Ось короткий огляд:
Ось приклад того, як це працює у TaskComponent:
task.ts
task.html
task.css
У нашому випадку, task — це об'єкт, який передається з батьківського компонента TaskListComponent у TaskComponent.
Коли користувач видаляє завдання або змінює його статус, TaskComponent генерує події, які відстежує батьківський компонент.
@Output() та EventEmitter використовуються для сповіщення батьківського компонента про події, що відбуваються в дочірньому компоненті. Ці декоратори дозволяють дочірньому компоненту передавати дії, такі як видалення завдання або зміна статусу, до батьківського компонента.
Метод deleteTask() викликається, коли користувач бажає видалити завдання. Він випромінює id завдання, що дозволяє батьківському компоненту видалити це завдання зі свого списку.
Метод toggleTask() перемикає статус виконання завдання та інформує батьківський компонент про цю зміну.
Як це працює разом
-
TaskListComponentпередає завдання доTaskComponentза допомогою@Input(); -
Користувач взаємодіє із завданням (наприклад, натискає "Видалити");
-
TaskComponentвипромінює подію (onDeleteабоonToggle) зidзавдання; -
TaskListComponentперехоплює подію та оновлює список завдань; -
Angular автоматично оновлює інтерфейс користувача на основі змінених даних.
Таким чином, @Input() та @Output() забезпечують чисту та ефективну комунікацію між компонентами, підтримуючи організовану та реактивну структуру.
1. Що робить декоратор @Input() в Angular?
2. Яке призначення EventEmitter в Angular?
3. У TaskComponent, яку роль виконує декоратор @Output()?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.13
Взаємодія між Компонентами в Angular
Свайпніть щоб показати меню
Як вони пов'язані?
TaskListComponent керуватиме масивом завдань, де кожне завдання є об'єктом з полями id, title та completed. Для відображення кожного завдання ми використаємо TaskComponent.
Крім того, TaskComponent буде повідомляти батьківський компонент про дії користувача, наприклад, коли завдання потрібно видалити або позначити як виконане. Ця взаємодія відбуватиметься через генерацію подій.
Реалізація логіки TaskListComponent
Створимо компонент, який відповідатиме за керування списком завдань. У ньому ми визначимо масив завдань, а також додамо два методи — deleteTask() та toggleStatus() — для обробки керування завданнями.
task-list.ts
task-list.html
task-list.css
- Список завдань (
tasks) управляється всередині компонента, що робитьTaskListComponentцентральним контролером; - Метод
deleteTask()відфільтровує завдання за йогоid; - Метод
toggleStatus()знаходить завдання заidта перемикає його статусcompleted.
Цей код використовує директиву *ngFor для ітерації по масиву tasks та створення TaskComponent для кожного завдання.
Детальніше розглянемо, як працює *ngFor, у наступному розділі.
-
[task]="task"— передає поточне завдання дочірньому компоненту для відображення; -
(onDelete)="deleteTask($event)"— прослуховує подіюonDeleteвід дочірнього компонента та викликаєdeleteTask()для видалення завдання; -
(onToggle)="toggleStatus($event)"— прослуховує подіюonToggleта викликаєtoggleStatus()для зміни статусу завдання.
Декоратори: @Input() та @Output()
Тепер настав час з'єднати TaskComponent з TaskListComponent, і для цього ми використаємо декоратори @Input() та @Output().
В Angular декоратори @Input() та @Output() є ключовими інструментами для комунікації між компонентами. Вони дозволяють передавати дані в компонент і генерувати події з компонента. Ось короткий огляд:
Ось приклад того, як це працює у TaskComponent:
task.ts
task.html
task.css
У нашому випадку, task — це об'єкт, який передається з батьківського компонента TaskListComponent у TaskComponent.
Коли користувач видаляє завдання або змінює його статус, TaskComponent генерує події, які відстежує батьківський компонент.
@Output() та EventEmitter використовуються для сповіщення батьківського компонента про події, що відбуваються в дочірньому компоненті. Ці декоратори дозволяють дочірньому компоненту передавати дії, такі як видалення завдання або зміна статусу, до батьківського компонента.
Метод deleteTask() викликається, коли користувач бажає видалити завдання. Він випромінює id завдання, що дозволяє батьківському компоненту видалити це завдання зі свого списку.
Метод toggleTask() перемикає статус виконання завдання та інформує батьківський компонент про цю зміну.
Як це працює разом
-
TaskListComponentпередає завдання доTaskComponentза допомогою@Input(); -
Користувач взаємодіє із завданням (наприклад, натискає "Видалити");
-
TaskComponentвипромінює подію (onDeleteабоonToggle) зidзавдання; -
TaskListComponentперехоплює подію та оновлює список завдань; -
Angular автоматично оновлює інтерфейс користувача на основі змінених даних.
Таким чином, @Input() та @Output() забезпечують чисту та ефективну комунікацію між компонентами, підтримуючи організовану та реактивну структуру.
1. Що робить декоратор @Input() в Angular?
2. Яке призначення EventEmitter в Angular?
3. У TaskComponent, яку роль виконує декоратор @Output()?
Дякуємо за ваш відгук!