Проверяет понимание реактивных форм в Angular и умение работать с потоком изменений значений формы через valueChanges.
valueChanges — это встроенное свойство реактивных форм Angular, которое предоставляет Observable (поток данных) для отслеживания изменений значения элемента управления. Оно доступно для FormControl, FormGroup и FormArray. Когда пользователь вводит данные или программно изменяет значение формы, valueChanges испускает новое значение, позволяя разработчику реагировать на эти изменения асинхронно.
При создании реактивной формы Angular создает объекты FormControl, которые хранят текущее значение и состояние. Свойство valueChanges возвращает RxJS Observable, который эмитит значение при каждом изменении. Подписка на этот Observable позволяет выполнять действия, такие как валидация, отправка данных на сервер или обновление других частей интерфейса.
import { Component, OnInit } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
@Component({
selector: 'app-search',
template: `
<form [formGroup]="searchForm">
<input formControlName="query" placeholder="Search...">
</form>
`
})
export class SearchComponent implements OnInit {
searchForm = new FormGroup({
query: new FormControl('')
});
ngOnInit() {
this.searchForm.get('query')?.valueChanges
.pipe(
debounceTime(300),
distinctUntilChanged()
)
.subscribe(value => {
console.log('Search query:', value);
// Здесь можно вызвать API для поиска
});
}
}valueChanges — мощный инструмент для работы с реактивными формами в Angular, позволяющий легко интегрировать асинхронную обработку изменений. Его стоит применять, когда требуется реагировать на ввод пользователя в реальном времени, особенно в сочетании с операторами RxJS для оптимизации производительности.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию