Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Взаємодія між Компонентами в Angular | Components and Templates
Вступ до Angular

bookВзаємодія між Компонентами в Angular

Як вони пов'язані?

TaskListComponent керуватиме масивом завдань, де кожне завдання є об'єктом з полями id, title та completed. Для відображення кожного завдання ми використаємо TaskComponent.

Крім того, TaskComponent буде повідомляти батьківський компонент про дії користувача, наприклад, коли завдання потрібно видалити або позначити як виконане. Ця взаємодія відбуватиметься через генерацію подій.

Реалізація логіки TaskListComponent

Створимо компонент, який відповідатиме за керування списком завдань. У ньому ми визначимо масив завдань, а також додамо два методи — deleteTask() та toggleStatus() — для обробки керування завданнями.

task-list.ts

task-list.ts

task-list.html

task-list.html

task-list.css

task-list.css

copy
  • Список завдань (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.ts

task.html

task.html

task.css

task.css

copy

У нашому випадку, task — це об'єкт, який передається з батьківського компонента TaskListComponent до TaskComponent.

Коли користувач видаляє завдання або змінює його статус, TaskComponent генерує події, які відстежує батьківський компонент.

@Output() та EventEmitter використовуються для сповіщення батьківського компонента про події, що відбуваються у дочірньому. Ці декоратори дозволяють дочірньому компоненту повідомляти про дії, такі як видалення завдання або зміна статусу, батьківському компоненту.

Метод deleteTask() викликається, коли користувач бажає видалити завдання. Він випромінює id завдання, що дозволяє батьківському компоненту видалити це завдання зі свого списку.

Метод toggleTask() перемикає статус виконання завдання та інформує про цю зміну батьківський компонент.

Як це працює разом

  1. TaskListComponent передає завдання до TaskComponent за допомогою @Input();

  2. Користувач взаємодіє із завданням (наприклад, натискає "Видалити");

  3. TaskComponent випромінює подію (onDelete або onToggle) з id завдання;

  4. TaskListComponent перехоплює подію та оновлює список завдань;

  5. Angular автоматично оновлює інтерфейс користувача на основі змінених даних.

Таким чином, @Input() та @Output() забезпечують чисту та ефективну комунікацію між компонентами, підтримуючи організовану та реактивну структуру.

1. Що робить декоратор @Input() в Angular?

2. Яке призначення EventEmitter в Angular?

3. У TaskComponent, що робить декоратор @Output()?

question mark

Що робить декоратор @Input() в Angular?

Select the correct answer

question mark

Яке призначення EventEmitter в Angular?

Select the correct answer

question mark

У TaskComponent, що робить декоратор @Output()?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 6

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 3.13

bookВзаємодія між Компонентами в Angular

Свайпніть щоб показати меню

Як вони пов'язані?

TaskListComponent керуватиме масивом завдань, де кожне завдання є об'єктом з полями id, title та completed. Для відображення кожного завдання ми використаємо TaskComponent.

Крім того, TaskComponent буде повідомляти батьківський компонент про дії користувача, наприклад, коли завдання потрібно видалити або позначити як виконане. Ця взаємодія відбуватиметься через генерацію подій.

Реалізація логіки TaskListComponent

Створимо компонент, який відповідатиме за керування списком завдань. У ньому ми визначимо масив завдань, а також додамо два методи — deleteTask() та toggleStatus() — для обробки керування завданнями.

task-list.ts

task-list.ts

task-list.html

task-list.html

task-list.css

task-list.css

copy
  • Список завдань (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.ts

task.html

task.html

task.css

task.css

copy

У нашому випадку, task — це об'єкт, який передається з батьківського компонента TaskListComponent до TaskComponent.

Коли користувач видаляє завдання або змінює його статус, TaskComponent генерує події, які відстежує батьківський компонент.

@Output() та EventEmitter використовуються для сповіщення батьківського компонента про події, що відбуваються у дочірньому. Ці декоратори дозволяють дочірньому компоненту повідомляти про дії, такі як видалення завдання або зміна статусу, батьківському компоненту.

Метод deleteTask() викликається, коли користувач бажає видалити завдання. Він випромінює id завдання, що дозволяє батьківському компоненту видалити це завдання зі свого списку.

Метод toggleTask() перемикає статус виконання завдання та інформує про цю зміну батьківський компонент.

Як це працює разом

  1. TaskListComponent передає завдання до TaskComponent за допомогою @Input();

  2. Користувач взаємодіє із завданням (наприклад, натискає "Видалити");

  3. TaskComponent випромінює подію (onDelete або onToggle) з id завдання;

  4. TaskListComponent перехоплює подію та оновлює список завдань;

  5. Angular автоматично оновлює інтерфейс користувача на основі змінених даних.

Таким чином, @Input() та @Output() забезпечують чисту та ефективну комунікацію між компонентами, підтримуючи організовану та реактивну структуру.

1. Що робить декоратор @Input() в Angular?

2. Яке призначення EventEmitter в Angular?

3. У TaskComponent, що робить декоратор @Output()?

question mark

Що робить декоратор @Input() в Angular?

Select the correct answer

question mark

Яке призначення EventEmitter в Angular?

Select the correct answer

question mark

У TaskComponent, що робить декоратор @Output()?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 6
some-alt