Предложение TC39 Signals
- title
- Предложение TC39 Signals
- type
- concept
- summary
- Предложение Stage 1 по добавлению нативных примитивов Signal в JavaScript
- tags
- javascript, tc39, signals, standards
- parent
- reactive-signals
- created
- 2026-04-06
- updated
- 2026-04-06
- lang
- ru
- translation_of
- tc39-proposal-signals
- source_updated
- 2026-04-06
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
Предложение TC39 на этапе Stage 1 по добавлению нативного примитива Signal в JavaScript. Цель - не заменить API конкретных фреймворков (createSignal в Solid, ref в Vue, signal в Preact), а предоставить под ними общий реактивный фундамент. Фреймворки сохранят свои внешние API, но будут использовать единые механизмы подписки, инвалидации и отслеживания зависимостей.
В случае принятия сигналы из разных фреймворков смогут взаимодействовать друг с другом: сигнал из Solid сможет передавать значение в computed-свойство Vue, так как оба будут опираться на один и тот же нативный примитив.
Предложение охватывает базовый push-pull алгоритм: немедленную инвалидацию при записи, ленивое повторное вычисление при чтении и автоматическое отслеживание зависимостей через стек контекста исполнения. Подробнее о том, как этот алгоритм работает на практике, см. в signal-push-pull-algorithm.
Статус Stage 1 означает, что комитет считает задачу заслуживающей решения, но форма API ещё открыта для изменений. Ни один браузер пока не выпустил готовую реализацию.
Связанные страницы
- reactive-signals - концепция в более широком контексте
- signal-push-pull-algorithm - разбор реализации алгоритма, который стандартизирует это предложение