Рекомендуем
VPS на Windows и Linux — от 49 ₽ за 7 дней Быстрый запуск сервера на NVMe для сайтов, ботов и других задач.
Выбрать VPS

Vue.js 3.6.0-rc.8 — стабилизация Vapor Mode и исправления runtime-vapor

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

Vue.js 3.6.0-rc.8
Vue.js 3.6.0-rc.8

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-vaporis="vue:" на нативных тегах теперь корректно разрешается как компонентДинамическое определение Vue-компонентов работает предсказуемее
runtime-vaporКопируются rawProps при подстановке fallthrough-атрибутовНаследуемые атрибуты меньше зависят от порядка и источника props
runtime-vaporОсвобождаются экземпляры компонентов, которые были созданы, но не смонтированыУстраняется риск сохранения лишнего состояния после ошибки или отменённого рендера
runtime-vaporИсправлены перемещения и отложенный рендер веток в SlotFragmentКорректнее работают слоты вместе с переходами, KeepAlive и перестановкой компонентов
runtime-vaporДинамические ветки ключуются по реально разрешённому компонентуСнижается вероятность ошибочного переиспользования состояния при смене компонента
runtime-vaporОбъединяются слушатели событий из нескольких источников propsv-on и явно объявленные обработчики больше не должны перезаписывать друг друга
runtime-vaporОбъединяются class, style и события из разных источниковПоведение ближе к обычному VDOM-режиму Vue
runtime-vaporАсинхронный setup() регистрируется в окружающей границе SuspenseАсинхронные компоненты корректнее участвуют в жизненном цикле Suspense
VaporИсправлена работа v-once для компонентов, слотов и директивЗначение v-once не должно нарушаться в составных Vapor-сценариях
VaporFallback динамического компонента создаётся в корректном 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 для предварительной проверки совместимости.

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться