11 сентября 2026 года была выпущена предварительная версия Vue.js 3.6.0-rc.8. Этот релиз, несмотря на отсутствие новых функций, направлен на улучшение существующих возможностей. В частности, он устраняет 11 ошибок в режиме Vapor Mode и включает три оптимизации для runtime-vapor. Эти изменения касаются работы со слотами, динамическими компонентами, Suspense и обработкой атрибутов.

RC8 сосредоточен на стабилизации Vapor Mode
Vue.js 3.6.0-rc.8 опубликован через неделю после RC7 и продолжает этап доводки новой ветки перед стабильным выпуском. В официальном changelog ветки minor для RC8 перечислены 11 исправлений и три улучшения производительности — почти все они относятся к compiler-vapor, runtime-vapor или общему поведению Vapor Mode.
Сам Vapor Mode появился в RC-фазе Vue 3.6 как опциональный режим компиляции Single-File Components, ориентированный на уменьшение базового размера приложения и снижение накладных расходов VDOM. Ветка 3.6 также включает переработанную систему реактивности на базе alien-signals, однако RC8 не вводит очередной набор функций поверх этих изменений — релиз в основном устраняет обнаруженные пограничные случаи.
По данным npm, версия 3.6.0-rc.8 опубликована с тегом rc, тогда как стабильным тегом latest по-прежнему отмечена Vue 3.5.42. Это принципиально для production-проектов: RC8 остаётся предварительным выпуском и предназначен прежде всего для тестирования совместимости и Vapor Mode.
Что исправили в компиляторе и runtime
Основной набор изменений связан с тем, чтобы поведение Vapor Mode точнее соответствовало привычной семантике Vue при работе с компонентами, слотами, атрибутами и событиями.
| Область | Изменение в Vue.js 3.6.0-rc.8 | Практический эффект |
compiler-vapor | Исправлена генерация createElement-дочерних узлов внутри шаблона | Снижается риск некорректного DOM при вложенных шаблонных конструкциях |
compiler-vapor | is="vue:" на нативных тегах теперь корректно разрешается как компонент | Динамическое определение Vue-компонентов работает предсказуемее |
runtime-vapor | Копируются rawProps при подстановке fallthrough-атрибутов | Наследуемые атрибуты меньше зависят от порядка и источника props |
runtime-vapor | Освобождаются экземпляры компонентов, которые были созданы, но не смонтированы | Устраняется риск сохранения лишнего состояния после ошибки или отменённого рендера |
runtime-vapor | Исправлены перемещения и отложенный рендер веток в SlotFragment | Корректнее работают слоты вместе с переходами, KeepAlive и перестановкой компонентов |
runtime-vapor | Динамические ветки ключуются по реально разрешённому компоненту | Снижается вероятность ошибочного переиспользования состояния при смене компонента |
runtime-vapor | Объединяются слушатели событий из нескольких источников props | v-on и явно объявленные обработчики больше не должны перезаписывать друг друга |
runtime-vapor | Объединяются class, style и события из разных источников | Поведение ближе к обычному VDOM-режиму Vue |
runtime-vapor | Асинхронный setup() регистрируется в окружающей границе Suspense | Асинхронные компоненты корректнее участвуют в жизненном цикле Suspense |
| Vapor | Исправлена работа v-once для компонентов, слотов и директив | Значение v-once не должно нарушаться в составных Vapor-сценариях |
| Vapor | Fallback динамического компонента создаётся в корректном namespace шаблона | Устраняются ошибки на границах HTML/SVG и других пространств имён |
Одно из наиболее показательных исправлений связано с объединением обработчиков событий. В RC7 был зарегистрирован дефект, при котором объектная привязка v-on могла конфликтовать со статически заданным слушателем на компоненте. В RC8 runtime-vapor объединяет такие обработчики вместо того, чтобы один источник props фактически вытеснял другой.
Другой заметный блок касается SlotFragment. Исправление учитывает семантику перемещения узлов и повторно разрешает содержимое слота после отложенного рендера. Это влияет на сценарии с keyed-перестановкой компонентов, out-in-переходами, fallback-контентом и деактивацией либо повторной активацией через KeepAlive.
Три оптимизации runtime-vapor
В RC8 также внесены три изменения, уменьшающие внутренние накладные расходы Vapor runtime. Команда Vue не приводит для них отдельные benchmark-цифры, поэтому воспринимать этот релиз как самостоятельный скачок производительности не стоит.
Первая оптимизация убирает создание closure для границы hydration при обычном клиентском рендеринге. Вторая исключает служебный учёт fallthrough-атрибутов, нужный только для разработки, из production-сборки. Третья убирает вызов mergeProps из пути обработки fallthrough-атрибутов.
Все три изменения работают на одном уровне — сокращают лишние операции и выделения памяти в горячих участках runtime-vapor. Их практическая ценность будет заметнее в совокупности с основной архитектурой Vapor Mode, а не как отдельный прирост от перехода с RC7 на RC8.
Кому имеет смысл переходить на RC8
Версия Vue.js 3.6.0-rc.8 предназначена для разработчиков, уже тестирующих ветку 3.6 или использующих Vapor Mode в экспериментальных проектах. Если проект столкнулся в RC7 с проблемами в динамических компонентах, слотах, Suspense, KeepAlive, наследовании атрибутов или объединении обработчиков событий, обновление имеет прямой практический смысл.
Для проверки конкретной версии можно установить её явно:
npm install vue@3.6.0-rc.8Фиксация номера версии предпочтительнее установки общего тега rc, если тесты должны быть воспроизводимыми в CI или между разработчиками.
Для обычных production-приложений, которые не участвуют в тестировании Vue 3.6, оснований срочно уходить со стабильной Vue 3.5.42 нет. RC8 остаётся предварительной сборкой, а официальный changelog не содержит заявлений о CVE или исправлениях безопасности, требующих немедленного перехода.
Vue 3.6 приближается к стабильному состоянию
В версии Vue.js 3.6.0-rc.8 разработчики сосредоточились не на добавлении новых функций в API, а на устранении несоответствий между Vapor Mode и традиционным VDOM-рендерингом. За один релиз-кандидат были исправлены сразу несколько проблемных областей, включая merge-семантику props, работу слотов, асинхронное поведение функции setup() и динамические компоненты.
Разработчикам, которые тестируют режим Vapor Mode, версия RC8 кажется более предпочтительной по сравнению с RC7, поскольку она представляет собой более зрелую тестовую базу. Для production-проектов рекомендации остаются прежними: до выхода стабильной версии Vue 3.6 рекомендуется использовать текущую стабильную ветку и отдельно тестировать RC8 в стендах или CI для предварительной проверки совместимости.