Что такое новый control flow @if, @for и @switch в Angular?
Компоненты и шаблоны
Встроенный control flow (Angular 17+) — синтаксис блоков в шаблоне, который заменяет структурные директивы *ngIf, *ngFor и *ngSwitch.
Примеры
@if (user) {
<p>{{ user.name }}</p>
} @else {
<p>Гость</p>
}
@for (item of items; track item.id) {
<li>{{ item.title }}</li>
} @empty {
<li>Список пуст</li>
}
@switch (status) {
@case ('loading') { <app-spinner /> }
@case ('error') { <app-error /> }
@default { <app-content /> }
}Преимущества
- Не нужно импортировать
CommonModuleиNgIf. - Блок
@forтребуетtrack, поэтому разработчик не забывает про идентификатор, как сtrackBy. - Есть
@emptyи@elseбез отдельных шаблоновng-template. - Быстрее работает: логика встроена в компилятор.
- Дополнительно есть
@deferдля отложенной загрузки частей страницы.
Коротко для собеседования
Новый синтаксис проще и быстрее *ngIf и *ngFor. В @for обязателен track.