Курс: Создание веб-приложений с использованием Angular и React

Общий план курса

24 урока — от языка до готового TaskFlow

Структура курса: уроки 1–2 — база · уроки 3–13 — Angular · уроки 14–23 — React · урок 24 — итоговый проект

Принцип курса. Каждый большой блок курса берёт один сценарий TaskFlow и реализует его. Сначала на Angular, затем на React. Это позволяет повторять одни и те же задачи в двух технологиях и понимать их общую базу: JavaScript, TypeScript, компоненты, state, HTTP, формы и роутинг.
Что уже пройдено

Освоено: уроки 1–2

Урок 1. Веб-архитектура: браузер, URL/DNS, HTTP, REST API, JSON, HTML, CSS, JS+DOM, декларативный UI, TS-основы, Promise/async/await, mock API, frontend/backend, routing, CSR/SSR/SSG, первый взгляд на компоненты Angular и React, Node/npm, Git, DevTools, a11y, state, loading/empty/error, проектирование TaskFlow, практика (ng new, первый список, React-компонент, сравнение, состояние).

Урок 2. JavaScript и TypeScript (53 раздела): переменные и область видимости, примитивы, сравнения, условия/guard clauses, циклы, массивы, map/filter/find/reduce, объекты, деструктуризация, spread/rest, функции, arrow functions, callbacks, замыкания, this, ES-модули, import, Promise, async/await, обработка ошибок, fetch, TS: статический анализ, основные типы, annotations/inference, arrays/objects/readonly, type aliases, interfaces, union types, literal types, optional/properties, function types, generics, any/unknown, assertions, JSON из API, модель Task, практики и самостоятельная работа.

Что это даёт. К концу урока 2 сформирована языковая база, модель Task, а также представление о компонентах, state и HTTP в обеих технологиях. Дальше материал не «повторяется», а углубляется внутри реальных задач TaskFlow.
Сквозная логика

Как неосвоенный материал распределён по урокам

Языковые конструкции и типы из урока 2 не изучаются «отдельно ещё раз». Они превращаются в задачи TaskFlow и повторяются по мере усложнения. Ниже — карта распределения.

Тема (база урока 2)Выполняется в AngularВыполняется в React
Массивы + map/filter/find/reduceУрок 5 (computed) · Урок 11 (состояние)Урок 16 (map/filter) · Урок 21
Объекты, spread, модели Task/TaskFormУрок 6 (сервисы и модель)Урок 15 (useState, объекты)
Промисы, async/await, fetchУрок 7 (HttpClient + mock API)Урок 18 (fetch + useEffect)
Обработка ошибок, HTTP-статусыУрок 7 · Урок 10 (loading/empty/error)Урок 18 · Урок 20
Функции, callbacks, guards, условияУрок 3–4 (обработчики, input/output)Урок 14–15 (обработчики, props)
Деструктуризация, rest, типы union/literalУрок 5–6 (сигналы, статусы)Урок 16–17 (деструктуризация props)
Generics, unknown, JSON из APIУрок 6–7 (типизированный HttpClient)Урок 18 (типизированный ответ)
Модули ES, import/exportВсем Angular-урокам (файлы компонентов)Всем React-урокам (файлы компонентов)
Компоненты, template, state (первый взгляд)Уроки 3–5 (углубление)Уроки 14–16 (углубление)

Содержание плана

  1. Урок 3 — Angular: компоненты и шаблоны
  2. Урок 4 — Angular: данные и события между компонентами
  3. Урок 5 — Angular: сигналы и реактивное состояние
  4. Урок 6 — Angular: сервисы, модель Task и DI
  5. Урок 7 — Angular: HTTP, mock API и ошибки
  6. Урок 8 — Angular: формы
  7. Урок 9 — Angular: маршрутизация
  8. Урок 10 — Angular: состояние TaskFlow и UI-паттерны
  9. Урок 11 — Angular: архитектура TaskFlow
  10. Урок 12 — Angular: полный проект + тесты
  11. Урок 13 — Angular: углублённые возможности
  12. Урок 14 — React: компоненты, JSX и props
  13. Урок 15 — React: useState и обработка событий
  14. Урок 16 — React: списки, map и фильтрация
  15. Урок 17 — React: формы и controlled inputs
  16. Урок 18 — React: эффекты, fetch и ошибки
  17. Урок 19 — React: маршрутизация
  18. Урок 20 — React: состояние TaskFlow и UI-паттерны
  19. Урок 21 — React: композиция и управление состоянием
  20. Урок 22 — React: полный проект + тесты
  21. Урок 23 — React: углублённые возможности и hooks
  22. Урок 24 — Итоговый проект и защита
Блок Angular · Урок 3

Урок 3 — Angular: компоненты и шаблоны

Теория — 60 мин · Практика — 90 мин

Углубляем первый взгляд на Angular-компоненты из урока 1. Разбираем standalone-компонент как основную единицу приложения и современный control flow.

Проект к уроку

Перенести статический список Задач из урока 1 на @for + интерполяцию, добавить @if для пустого списка и @switch для статусов.

Блок Angular · Урок 4

Урок 4 — Angular: данные и события между компонентами

Теория — 60 мин · Практика — 90 мин

Строим компонентное дерево TaskFlow: AppShell → TaskPage → TaskList → TaskItem / TaskForm / FilterBar. Осваиваем связь родитель–ребёнок.

Проект к уроку

Разбить экран на компоненты, связать TaskList и TaskItem через Input/Output с использованием модели Task.

Блок Angular · Урок 5

Урок 5 — Angular: сигналы и реактивное состояние

Теория — 60 мин · Практика — 90 мин

Урок 1 показал signal(). Теперь доводим реактивное состояние TaskFlow до полной модели и разбираем производные значения.

Проект к уроку

Завести список задач в сигнале, реализовать toggle и фильтрацию через computed на основе map/filter/find.

Блок Angular · Урок 6

Урок 6 — Angular: сервисы, модель Task и DI

Теория — 60 мин · Практика — 90 мин

Выносим работу с данными из компонентов в сервисы. TypeScript-модель Task и TaskForm (разделы 40–42 урока 2) становятся официальным контрактом.

Проект к уроку

Создать сервис TaskService с сигналом списка и методами add/toggle/remove; подключить через DI.

Блок Angular · Урок 7

Урок 7 — Angular: HTTP, mock API и ошибки

Теория — 60 мин · Практика — 90 мин

Соединяем Angular с mock API на порту 3000 (из урока 1). Промисы и async/await из урока 2 переходят в Observable/HttpClient.

Проект к уроку

Подключить TaskService к json-server: загрузка списка, создание, toggle, удаление; обработать ошибки и состояние загрузки.

Блок Angular · Урок 8

Урок 8 — Angular: формы

Теория — 60 мин · Практика — 90 мин

Создаём и редактируем задачи через формы. Объекты и spread из урока 2 применяются к данным формы.

Проект к уроку

Форма «Добавить задачу» с валидацией; отправка POST в TaskService, очистка формы, добавление в список.

Блок Angular · Урок 9

Урок 9 — Angular: маршрутизация

Теория — 60 мин · Практика — 90 мин

Превращаем одностраничный TaskFlow в приложение с несколькими экранами (список, задача, настройки).

Проект к уроку

Создать маршруты: /tasks, /tasks/:id, /new; переходы через RouterLink; защита маршрута редактирования.

Блок Angular · Урок 10

Урок 10 — Angular: состояние TaskFlow и UI-паттерны

Теория — 60 мин · Практика — 90 мин

Систематизируем четыре состояния UI (урок 1/практика 2) в Angular и добавляем производные данные.

Проект к уроку

Перевести TaskList на явную машину состояний; добавить pipe для даты и подсчёты через computed.

Блок Angular · Урок 11

Урок 11 — Angular: архитектура TaskFlow

Теория — 60 мин · Практика — 90 мин

Собираем весь первый Angular-прототип в единую архитектуру по сценариям из урока 1 (раздел 34).

Проект к уроку

Провести рефакторинг TaskFlow: разделить файлы, вынести логику, убедиться, что все сценарии работают.

Блок Angular · Урок 12

Урок 12 — Angular: полный проект + тесты

Теория — 45 мин · Практика — 120 мин

Заканчиваем функциональность и покрываем её тестами (Vitest из scaffold).

Итог блока

Работающий TaskFlow на Angular с тестами. Контрольная точка для перехода к React.

Блок Angular · Урок 13

Урок 13 — Angular: углублённые возможности

Теория — 90 мин · Практика — 60 мин

Крайний Angular-урок: разбираем продвинутые механизмы, на которые опирается профессиональный код.

Проект к уроку

Оптимизировать TaskFlow: content projection для обёртки, onPush, сотрудник refactor для больших списков.

Блок React · Урок 14

Урок 14 — React: компоненты, JSX и props

Теория — 60 мин · Практика — 90 мин

Начинаем React-блок. Первый взгляд был в уроке 1; теперь строим полное компонентное дерево по аналогии с Angular-блоком.

Проект к уроку

Расклад TaskFlow на React-компоненты: App, TaskList, TaskItem; данные в props как объекты Task.

Блок React · Урок 15

Урок 15 — React: useState и обработка событий

Теория — 60 мин · Практика — 90 мин

Переводим состояние TaskFlow на React. Обычные функции и объекты урока 2 применяются к событиям.

Проект к уроку

Добавить toggle и удаление задач через useState и колбэки, применяя guard clauses и arrow functions.

Блок React · Урок 16

Урок 16 — React: списки, map и фильтрация

Теория — 60 мин · Практика — 90 мин

Методы массивов из урока 2 становятся основой React-рендера списков.

Проект к уроку

Реализовать фильтрацию и счётчики задач через filter/map/reduce; переиспользовать в TaskList.

Блок React · Урок 17

Урок 17 — React: формы и controlled inputs

Теория — 60 мин · Практика — 90 мин

Формы в React: controlled inputs и валидация. Объекты TaskForm из урока 2 применяются к состоянию формы.

Проект к уроку

Форма «Добавить задачу» в React: controlled input, валидация, добавление объекта в список.

Блок React · Урок 18

Урок 18 — React: эффекты, fetch и ошибки

Теория — 60 мин · Практика — 90 мин

Соединяем React с mock API. Промисы и async/await из урока 2 реализуются через useEffect и fetch.

Проект к уроку

Подключить TaskFlow к mock API: загрузка, создание, toggle, удаление; обработать ошибки и загрузку.

Блок React · Урок 19

Урок 19 — React: маршрутизация

Теория — 60 мин · Практика — 90 мин

Добавляем несколько экранов TaskFlow. Первый взгляд был в уроке 1 (раздел 16); теперь настраиваем реальный роутер.

Проект к уроку

Настроить React Router для TaskFlow и реализовать переходы со страницей одной задачи.

Блок React · Урок 20

Урок 20 — React: состояние TaskFlow и UI-паттерны

Теория — 60 мин · Практика — 90 мин

Систематизируем четыре состояния UI (урок 1/практика 2) в React, как это было для Angular в уроке 10.

Проект к уроку

Перевести React-TaskFlow на явную машину состояний и вынести фильтры в общее состояние родителя.

Блок React · Урок 21

Урок 21 — React: композиция и управление состоянием

Теория — 60 мин · Практика — 90 мин

Крупные приложения требуют структурированного state. Разбираем паттерны React поверх useState.

Проект к уроку

Перевести управление задачами React на context/reducer, сохранив работу с API.

Блок React · Урок 22

Урок 22 — React: полный проект + тесты

Теория — 45 мин · Практика — 120 мин

Заканчиваем функциональность React-версии и покрываем её тестами.

Итог блока

Работающий TaskFlow на React с тестами. Контрольная точка для финала.

Блок React · Урок 23

Урок 23 — React: углублённые возможности и hooks

Теория — 90 мин · Практика — 60 мин

Профессиональные паттерны: кастомные hooks, производительность и переиспользование.

Проект к уроку

Вынести логику задач в кастомные hooks, добавить сохранение в localStorage и оптимизировать перерисовку.

Финал

Урок 24 — Итоговый проект и защита

Практика — 180 мин

Синтез всего курса. Сравнение Angular и React на реальном TaskFlow и защита решений.

Критерий завершения. Студент может реализовать один сценарий TaskFlow без подсказок одновременно на Angular и на React и объяснить разницу в подходах.