Что это простыми словами

Angular Signals — это новый способ работы с данными в приложениях на Angular. Когда что-то меняется (например, пользователь нажал кнопку или пришли данные с сервера), нужные части интерфейса обновляются сами — без лишней работы и проверок.

Аналогия: представьте табло в аэропорту. Когда статус рейса меняется, табло обновляется само — ему не нужно каждую секунду проверять все рейсы подряд. Signals работают так же: данные сообщают «я изменился», и только те части страницы, которые эти данные показывают, перерисовываются.

Это не отдельный фреймворк — это новая возможность внутри Angular, появившаяся в 2023 году.

Официальное определение

Теперь, когда суть понятна, вот как это описывают в документации. Эту формулировку вы встретите в вакансиях и в речи Angular-разработчиков.

«Signals — система реактивности, основанная на примитивах для отслеживания изменения состояния и автоматического обновления зависимых вычислений».

Разберём термины. «Реактивность» — когда одно изменилось, другое обновилось само. «Примитивы» — базовые встроенные механизмы языка/фреймворка, из которых собирается всё остальное. «Состояние» — текущие данные приложения (что в корзине, открыто ли меню, какой пользователь залогинен). «Зависимые вычисления» — части кода, которые используют эти данные и должны пересчитаться, когда данные изменились.

Зачем нужен и какую задачу решает

До Signals в Angular отслеживание изменений работало через Zone.js: фреймворк проверял всё приложение целиком после каждого события. Это медленно и расходует ресурсы.

Signals решают две главные задачи:

Signals — это альтернатива асинхронной библиотеке RxJS, которую Angular использовал для управления данными. RxJS мощный, но сложный; Signals проще освоить и в большинстве случаев его достаточно.

К кому относится: язык, специальность, экосистема

Signals — это часть Angular, одного из трёх основных фреймворков фронтенда. Работает на языке JavaScript (почти всегда вместе с TypeScript). Signals относится к специальности frontend-разработчик.

Важно: Signals доступны только в Angular версии 16 и новее (с мая 2023 года). В старых проектах на Angular его не будет.

В экосистеме Angular Signals работает вместе с:

С чем взаимозаменяем

Внутри Angular Signals частично заменяет связку Zone.js + RxJS для управления состоянием. Но это НЕ жёсткая замена: в одном проекте могут работать и Signals, и RxJS одновременно. Signals берёт на себя простые случаи, а RxJS остаётся для сложной асинхронной логики.

Если сравнивать с другими фреймворками: похожие механизмы есть в Vue (Composition API) и Solid.js. Но это концептуальное сходство — технически они не взаимозаменяемы, потому что привязаны к разным фреймворкам.

Переход на Signals внутри проекта на Angular дешевле, чем переход на другой фреймворк: код можно мигрировать постепенно, участок за участком.

Что не путать

Насколько это важно при отборе

Короткий ответ: обычно не критично, но зависит от проекта.

Signals появился недавно (2023), и большинство проектов на Angular пока работают без него. Опытный Angular-разработчик освоит Signals за пару недель — это эволюция внутри знакомого фреймворка, а не смена технологического стека.

Когда стоит обращать внимание на опыт с Signals:

Когда не стоит требовать:

Правило простое: опыт с Angular критичен, опыт именно с Signals — приятный бонус. Отсеивать кандидатов за отсутствие Signals — ошибка, так вы потеряете хороших Angular-разработчиков.

Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.