Модуль 0 · Фронтенд в эпоху ИИ

Справочник по Angular и React · модуль 0 · фронтенд в эпоху ИИ

0.2

0.2

React и Angular
в 2026 году

В этой главе разобрано, кто разрабатывает React и Angular, как часто выходят их версии и сколько разработчиков ими пользуется. Одна и та же небольшая задача — поиск по списку — записана на обоих фреймворках, и по ней видны основные различия в работе. Отдельный раздел объясняет, почему инструменты ИИ по-разному относятся к двум фреймворкам и как это влияет на выбор.

Категория
Основы
Уровень
Вводный
Связанные темы
Состояние и компоненты (глава 0.1)
Зачем это знать
Понимать, где и почему выбирают каждый фреймворк, и читать код обоих

§1Кто разрабатывает и как выходят версии

Фреймворк — программа, от которой зависит работа тысяч приложений, поэтому от ответа на вопрос «кто его поддерживает» зависит, можно ли строить на нём продукт на пять–десять лет. Компании нужно, чтобы фреймворк продолжали поддерживать, о несовместимых изменениях предупреждали заранее и исправления уязвимостей выходили вовремя.

React

React создан в Facebook и открыт в 2013 году. Тринадцать лет его разрабатывала компания Meta. 24 февраля 2026 года Linux Foundation объявила о создании React Foundation: Meta передала фонду React, React Native и связанные проекты. В числе первых участников фонда — Amazon, Meta, Microsoft, Vercel, Expo, Huawei, Callstack и Software Mansion. Фонд отвечает за инфраструктуру проекта и конференцию React Conf; техническое направление по-прежнему задают разработчики ядра.

Для пользователя React это означает, что проект больше не зависит от решений одной компании. Схема знакома по другим крупным открытым проектам: ядро Linux и Node.js тоже развиваются под управлением фондов, куда входят компании, которые на них зарабатывают.

Angular

Angular разрабатывает команда в Google. У фреймворка опубликован график выпусков: до версии 21 крупная версия выходила раз в полгода, с версии 22 — раз в год. Каждая крупная версия поддерживается 24 месяца: 12 месяцев активной разработки и 12 месяцев долгосрочной поддержки, когда выходят только исправления критических ошибок и уязвимостей. Angular 22 вышел 3 июня 2026 года, следующая версия ожидается в июне 2027 года.

Предсказуемый график — одна из причин, по которым Angular выбирают банки и крупные компании: срок, до которого нужно обновить проект, известен заранее. В объявлении о переходе на годовой цикл команда Angular назвала ещё одну причину: стабильный интерфейс фреймворка нужен инструментам ИИ, которые пишут код по документации и примерам. Чем реже меняется способ записи, тем реже инструмент предлагает устаревший код.

Версии с 2024 по 2027 год

202520262027 19.019.119.219.3 React дек 2024 · мар 2025 · окт 2025 · сен 2026 v20v21v22v23 Angular v23 — ожидается в июне 2027

У React крупная версия 19 действует с декабря 2024 года, новые возможности приходят в дополнительных версиях 19.x. У Angular крупная версия выходит по графику и несёт основные изменения; после версии 22 интервал удлинён до года.

Кроме поддержки производителя, при выборе фреймворка учитывают, сколько разработчиков его знают: от этого зависит, найдёт ли компания людей, а разработчик — работу.

§2Сколько разработчиков ими пользуется

Самый крупный открытый опрос разработчиков проводит Stack Overflow. В опросе 2025 года участники отмечали веб-фреймворки, с которыми много работали за последний год. React отметили 44,7% всех участников, Angular — 18,2%. Среди тех, кто программирует профессионально, доли чуть выше: 46,9% и 19,8%. Один участник мог отметить несколько фреймворков, поэтому доли не складываются в 100%.

Веб-фреймворки в опросе Stack Overflow 2025

Доля участников, которые много работали с фреймворком за год. Шкала от 0 до 50%.

React · все участники44,7%
React · профессионалы46,9%
Angular · все участники18,2%
Angular · профессионалы19,8%

Источник: Stack Overflow Developer Survey 2025, раздел Technology → Web frameworks.

Из опроса следуют два вывода. React используют примерно в два с половиной раза чаще, чем Angular, и он остаётся самым распространённым фреймворком для веба. При этом Angular пользуется каждый пятый профессиональный разработчик — это миллионы людей и большой рынок работы. Доля Angular у профессионалов выше, чем у всех участников: его чаще встречают в компаниях, чем в личных проектах и при обучении.

Как читать такие опросы

В опросе Stack Overflow участвуют те, кто сам решил ответить, — в основном читатели сайта. Это не перепись всех разработчиков. Доли показывают, что распространено среди активных разработчиков, но не дают точного числа проектов или вакансий в конкретной стране.

Российский рынок

Отдельного открытого опроса по России такого масштаба нет, поэтому соотношение проверяют по сайтам вакансий в тот день, когда нужны цифры: доли меняются каждый месяц. Как это сделать, описано в задании главы 0.5. Пример российской компании, которая работает на Angular, — Т-Банк: он нанимает фронтенд-разработчиков на Angular и развивает в открытом доступе Taiga UI — библиотеку из более чем 130 компонентов для Angular, которую используют и за пределами банка (на 14 октября 2026 года у репозитория на GitHub около 4 тысяч звёзд).

Оба фреймворка востребованы. Чем они отличаются в работе, в следующем разделе показано на коде одной задачи.

§3Поиск по списку на React и Angular

Задача: поле поиска и список городов под ним. Пользователь вводит текст, и в списке остаются города, в названии которых этот текст встречается. Под списком — сколько городов найдено. В задаче есть всё, о чём говорилось в главе 0.1: состояние (текст в поле), значение, которое из него вычисляется (отфильтрованный список), и разметка, которая показывает и то, и другое.

React · CitySearch.tsx
import { useState } from 'react';

const CITIES = ['Москва', 'Казань',
  'Самара', 'Саратов'];

export function CitySearch() {
  const [query, setQuery] = useState('');
  const found = CITIES.filter(c =>
    c.toLowerCase().includes(query.toLowerCase()));

  return (
    <section>
      <input value={query}
        onChange={e => setQuery(e.target.value)} />
      <ul>
        {found.map(c => <li key={c}>{c}</li>)}
      </ul>
      <p>Найдено: {found.length}</p>
    </section>
  );
}
Angular · city-search.ts
import { Component, signal, computed }
  from '@angular/core';

const CITIES = ['Москва', 'Казань',
  'Самара', 'Саратов'];

@Component({
  selector: 'app-city-search',
  template: `
    <section>
      <input [value]="query()"
        (input)="query.set(
          $any($event.target).value)" />
      <ul>
        @for (c of found(); track c) {
          <li>{{ c }}</li>
        }
      </ul>
      <p>Найдено: {{ found().length }}</p>
    </section>`,
})
export class CitySearch {
  query = signal('');
  found = computed(() => CITIES.filter(c =>
    c.toLowerCase()
      .includes(this.query().toLowerCase())));
}

Обе записи делают одно и то же, и части в них находятся одна напротив другой. Ниже они разобраны по порядку.

Состояние

В React состояние создаёт функция useState(''). Она возвращает пару: текущее значение query и функцию setQuery, которой значение меняют. Когда вызывается setQuery, React вызывает функцию компонента заново и получает новое описание разметки. Функции, имена которых начинаются с use, называются хуками; их вызывают только в начале функции компонента.

В Angular состояние хранится в сигнале: signal('') создаёт контейнер со значением. Значение читают вызовом query(), меняют методом query.set(...). Angular запоминает, какие места шаблона читали сигнал, и при изменении обновляет только их.

Сравнение из жизни

Хук в React похож на повторное составление списка покупок: при каждом изменении список пишут заново целиком, а потом сверяют с предыдущим и докупают только разницу. Сигнал в Angular похож на подписку на рассылку: каждое место страницы подписано на те значения, которые показывает, и получает уведомление только о них.

React не перерисовывает всю страницу: функция вызывается заново только у компонента, где изменилось состояние, и у его потомков.

Вычисляемое значение

Список найденных городов не хранится отдельно: он вычисляется из текста поиска. В React это обычная переменная found, которая заново считается при каждом вызове функции компонента. В Angular для этого есть computed: значение пересчитывается только тогда, когда изменился сигнал, который в нём прочитан. Правило общее для обоих фреймворков: то, что можно вычислить из состояния, в состояние не записывают. Иначе появятся два источника одних и тех же данных, и они разойдутся, как витрина слева в главе 0.1.

Разметка

В React разметка записана прямо в коде на JavaScript (JSX). Список строится обычным методом массива map, а значение подставляется в фигурных скобках. В Angular разметка — отдельный шаблон со своими правилами: квадратные скобки [value] передают значение в свойство элемента, круглые (input) подписываются на событие, блок @for повторяет элемент для каждого города, двойные фигурные скобки выводят значение. Отсюда частая формулировка: в React «всё — JavaScript», в Angular у шаблона свой язык.

В обоих случаях у элемента списка есть ключ: key={c} в React и track c в Angular. По ключу фреймворк узнаёт, какой элемент списка какой, когда список меняется, и не пересоздаёт элементы, которые остались.

На небольшой задаче различия невелики. Как они проявляются на проекте из сотен компонентов, собрано в следующем разделе.

§4Различия в работе

Таблица собирает различия, которые заметны в первые недели работы с каждым фреймворком. Каждое различие делает фреймворк удобнее для одних проектов и команд и менее удобным для других.

ВопросReactAngular
Что этобиблиотека для интерфейса; остальное — из экосистемыплатформа: маршрутизация, HTTP, формы, тесты, сборка
Компонентфункция, разметка в JSXкласс с декоратором, шаблон со своим синтаксисом
Состояниехуки: useState, useReducerсигналы: signal, computed
ЯзыкJavaScript или TypeScriptTypeScript
Общие данные и службыконтекст или библиотеки состояниявнедрение зависимостей — встроенный механизм
Новый проектVite или Next.js; набор библиотек выбирает командаng new; структура задана фреймворком
Мобильные приложенияReact Native на том же подходеотдельные решения, например Ionic
Где встречается чащепродуктовые компании, стартапы, сайтыбанки, корпоративные системы, внутренние панели

Строки таблицы связаны между собой. Angular задаёт структуру проекта и требует TypeScript, поэтому код в большой команде получается однородным: разработчик, перешедший из одного отдела банка в другой, видит знакомые папки, службы и формы. Для этого на старте нужно освоить больше понятий: декораторы, внедрение зависимостей, синтаксис шаблонов. React на старте проще: компонент — это функция, разметка — это JavaScript. Решения, которые в Angular приняты фреймворком, в React команда принимает позже сама: выбирает маршрутизатор, библиотеку запросов, способ хранить общие данные и договаривается, как писать компоненты.

Сравнение из жизни

Angular похож на квартиру с ремонтом от застройщика: планировка, розетки и кухня уже есть, въехать можно сразу, но перенести стену сложно. React похож на квартиру в бетоне: можно сделать что угодно, но каждую комнату приходится планировать и покупать для неё отдельно.

В React-проектах сложились общепринятые наборы библиотек, и большинство команд не выбирает с нуля, а берёт готовую надстройку вроде Next.js.

С появлением инструментов ИИ, которые пишут код, при выборе фреймворка учитывают ещё и то, как эти инструменты с ним работают.

§5Фреймворки и инструменты ИИ

Модели, которые пишут код, обучены на открытом коде из интернета. Кода на React в открытом доступе больше, чем кода на Angular, поэтому модели чаще и увереннее предлагают React. Генераторы приложений, которые создают сайт по описанию, используют React по умолчанию: Lovable создаёт проекты на React, TypeScript, Vite и Tailwind, v0 от Vercel — на React и Next.js. Для начинающего разработчика из этого следует практический вывод: код на React, написанный ИИ, ему придётся читать и проверять чаще всего, даже если сам он работает на Angular.

У Angular с ИИ есть своя трудность. За 2023–2026 годы во фреймворке поменялось многое: появились сигналы, новый синтаксис шаблонов @if и @for, работа без библиотеки Zone.js, Signal Forms. В обучающих данных моделей старого кода на Angular больше, чем нового, и модели часто предлагают устаревшие приёмы: модули NgModule, директивы *ngFor, подписки RxJS там, где теперь пишут сигналы. Такой код работает, но в новом проекте его не пишут.

Для этой трудности команда Angular выпустила отдельные инструменты. На сайте angular.dev есть раздел для работы с ИИ: файлы с правилами для моделей, сервер MCP, через который ИИ-агент в редакторе получает актуальную документацию и примеры, и с версии 22 — стабильные инструменты, позволяющие агенту запустить сборку проекта и прочитать ошибки. В той же версии выпущены готовые наборы инструкций для агентов, которые описывают, как писать на современном Angular. В Google AI Studio можно создать приложение на Angular по описанию так же, как на React в других генераторах.

Что такое MCP

Model Context Protocol — открытый протокол, по которому ИИ-инструмент подключается к внешним источникам: документации, файлам проекта, командам сборки. Сервер MCP Angular запускается командой из Angular CLI и даёт агенту доступ к документации той версии фреймворка, на которой написан проект. Подробно работа с агентами разбирается в модуле 4.

Из этой главы следует выбор, сделанный в дисциплине. Основной фреймворк — React: он распространён больше, на нём по умолчанию пишут генераторы приложений, и у него меньше понятий на старте. Angular изучается одной обзорной парой: принципы, разобранные в главе 0.1, у фреймворков общие, и тот, кто понимает их на React, читает код на Angular. Как устроена дисциплина, описано в главе 0.5.

§6Проверьте себя

Что изменилось для React после 24 февраля 2026 года?

Meta передала React, React Native и связанные проекты фонду React Foundation в составе Linux Foundation. Проект управляется фондом, в который входят несколько компаний, и больше не зависит от решений одной Meta.

Сколько поддерживается крупная версия Angular начиная с версии 22, и почему это важно для компании?

24 месяца: 12 месяцев активной разработки и 12 месяцев долгосрочной поддержки с исправлениями критических ошибок и уязвимостей. Компания заранее знает, до какого срока нужно перевести проект на новую версию, и может спланировать работу.

В опросе Stack Overflow 2025 React отметили 44,7%, Angular — 18,2%. Почему нельзя сказать, что остальные 37,1% пользуются другими фреймворками?

Участник мог отметить несколько фреймворков сразу, поэтому доли пересекаются и не складываются в 100%. Кроме того, в опросе участвуют не только фронтенд-разработчики.

Почему в обоих примерах из §3 список найденных городов не хранится в отдельном состоянии?

Он полностью вычисляется из текста поиска. Если хранить его отдельно, появятся два источника одних данных, и при изменении одного второй можно забыть обновить. В React список считается при каждом вызове функции компонента, в Angular — через computed.

ИИ-помощник предложил для нового проекта на Angular 22 компонент с NgModule и *ngFor. Что с этим кодом не так?

Он написан устаревшими приёмами: в новых версиях компоненты автономные, без NgModule, а списки выводятся блоком @for. Код будет работать, но не соответствует тому, как пишут на текущей версии. Модель предложила его, потому что старого кода на Angular в её обучающих данных больше. Помогают сервер MCP и правила для моделей с angular.dev.

Итог главы

React с 2026 года развивается под управлением React Foundation, Angular — командой Google по годовому графику с поддержкой каждой версии 24 месяца. По опросу Stack Overflow 2025 React используют 44,7% разработчиков, Angular — 18,2%; Angular чаще встречается в банках и корпоративных системах. На одной задаче видно, что модели у фреймворков общие — состояние, вычисляемые значения, разметка, ключи списка, — а запись разная: хуки и JSX в React, сигналы и шаблоны в Angular. Инструменты ИИ по умолчанию пишут React, а для Angular часто предлагают устаревший код; команда Angular отвечает на это инструментами для агентов.

Источники

  1. Stack Overflow Developer Survey 2025 — Technology
  2. Linux Foundation — Announces the Formation of the React Foundation (24 февраля 2026)
  3. react.dev — React Versions
  4. angular.dev — Versioning and releases
  5. InfoQ — Google Releases Angular v22 with Stable Signal Forms, OnPush by Default and Experimental WebMCP
  6. heise — Angular 22 focuses on AI coding
  7. angular.dev — Build with AI
  8. Lovable — Tech Stack & Exports
  9. Хабр Карьера — вакансия Т-Банка «Frontend-разработчик Angular»
  10. GitHub — Taiga UI
Справочник по Angular и React © Макаров Максим Николаевич