Учебник Angular с нуля для начинающих
Премиум-курс по современному Angular (версия 19) для тех, кто хочет строить большие веб-приложения. Вы пройдёте путь от первого standalone-компонента до готового приложения: разберёте привязки данных и новый control flow @if/@for, сервисы и внедрение зависимостей, сигналы и управление состоянием, маршрутизацию с ленивой загрузкой, реактивные формы, работу с сервером через HttpClient и финальный деплой.
Каждый урок — это объёмная проза, ASCII-диаграммы под капотом и запускаемые JS-врезки, на которых вы своими руками собираете сигнал, DI-контейнер, роутер и валидацию. Никаких устаревших NgModule — только тот Angular, который пишут в 2025 году.
Курс «Angular с нуля» состоит из 6 разделов и 22 уроков: Введение и компоненты, Шаблоны, привязки и control flow, Сервисы и внедрение зависимостей, Signals и управление состоянием, Маршрутизация и формы и HTTP, оптимизация и деплой. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Введение и компоненты
- Что такое Angular и зачем он нужен
Знакомство с Angular: фреймворк для крупных SPA, его философия, экосистема и место среди React и Vue в 2025 году.
- Установка окружения и Angular CLI
Готовим рабочее окружение: Node.js, npm, Angular CLI, создаём первый проект командой ng new и запускаем dev-сервер.
- Анатомия проекта и первый компонент
Разбираем структуру сгенерированного проекта и создаём первый standalone-компонент: декоратор @Component, шаблон и стили.
- Связь компонентов: input() и output()
Передача данных между компонентами: сигнальные входы input(), события output() и поток «данные вниз, события вверх».
- Что такое Angular и зачем он нужен
2 Шаблоны, привязки и control flow
- Интерполяция и привязка свойств
Виды привязки данных в шаблонах Angular: интерполяция, property binding, attribute binding и class/style binding.
- Привязка событий и двусторонняя привязка
Обработка пользовательских событий через (event), объект $event и двусторонняя привязка с model() и [(ngModel)].
- Условия: @if, @else и @switch
Новый управляющий поток Angular: блоки @if / @else if / @else и @switch вместо устаревших *ngIf и ngSwitch.
- Списки: @for, track и @empty
Рендеринг списков новым блоком @for: обязательный track для производительности, блок @empty и переменные $index.
- Интерполяция и привязка свойств
3 Сервисы и внедрение зависимостей
- Сервисы: где жить логике
Зачем нужны сервисы: вынос бизнес-логики и состояния из компонентов, декоратор @Injectable и providedIn: 'root'.
- Внедрение зависимостей: inject() и конструктор
Как сервис попадает в компонент: функция inject(), внедрение через конструктор и сама идея инверсии управления.
- Провайдеры, токены и иерархия инжекторов
Тонкая настройка DI: useClass, useValue, useFactory, InjectionToken для не-классов и иерархия инжекторов.
- Сервисы: где жить логике
4 Signals и управление состоянием
- Signals: реактивность нового поколения
Что такое сигналы: signal() для хранения значения, чтение и запись через set/update и почему это меняет change detection.
- computed: производные значения
Вычисляемые сигналы computed(): автоматический пересчёт при изменении зависимостей, ленивость и мемоизация.
- effect и реакция на изменения
Побочные эффекты через effect(): когда запускается, отслеживание зависимостей, очистка и типичные сценарии применения.
- Управление состоянием на сигналах
Паттерн сигнального стора: инкапсуляция состояния в сервисе, приватный signal + публичные computed, методы-мутаторы.
- Signals: реактивность нового поколения
5 Маршрутизация и формы
- Маршрутизация: страницы без перезагрузки
Настройка роутера Angular: provideRouter, массив routes, router-outlet и навигация ссылками routerLink.
- Параметры маршрута и ленивая загрузка
Динамические маршруты с параметрами, чтение через input-сигналы, lazy loading компонентов через loadComponent.
- Реактивные формы и валидация
Reactive Forms: FormGroup и FormControl, валидаторы, отслеживание состояния valid/touched и вывод ошибок.
- Маршрутизация: страницы без перезагрузки
6 HTTP, оптимизация и деплой
- HttpClient: общение с сервером
Запросы к API через HttpClient: provideHttpClient(withFetch()), методы get/post и работа с Observable и сигналами.
- Observable, RxJS и обработка ошибок
Основы RxJS в Angular: Observable как поток, операторы map/catchError, toSignal() и грамотная обработка ошибок запросов.
- Change detection и оптимизация
Как Angular обнаруживает изменения: классический механизм, OnPush, zoneless-режим на сигналах и приёмы оптимизации.
- Сборка, деплой и итоги курса
Финал: production-сборка ng build, оптимизации, деплой статики на хостинг, настройка SPA-фолбэка и обзор пути дальше.
- HttpClient: общение с сервером