Vue Vapor Mode: what it is and what changes in Vue 3.6
Vue 3.6 is not stable yet. As of October 6, 2026, the latest version is 3.6.0-rc.10 (September 30), and the stable release is still 3.5.43 (September 17). I checked both on npm and in the vuejs/core releases on that date. Vue Vapor Mode is the headline feature of 3.6: a compilation mode that skips the Virtual DOM and generates code that updates the DOM directly. It is opt-in, so you pick which…
Vue 3.6 introduces a new feature called Vapor Mode, which aims to improve performance and reduce bundle size by compiling components to directly update the DOM, bypassing the Virtual DOM. This opt-in feature generates code that manipulates the DOM directly when reactive state changes. Vapor components do not create VNodes or diff trees at runtime, resulting in only the affected DOM portion being updated when a reactive value changes.
The primary benefit of Vapor Mode is a smaller baseline bundle and better performance, as supported by third-party benchmarks showing it matching the performance of Solid and Svelte 5. Additionally, Vue 3.6 includes a major refactor of the reactivity system based on the alien-signals library, which improves performance and memory usage without changing the API for ref(), reactive(), computed(), and watch().
To enable Vapor Mode, components can be marked with the vapor attribute in their script setup section or using the template vapor directive. This works for Single File Components (SFCs) and can be used with createApp() or in Nuxt 4.6, where components can be marked using the vapor attribute in their script setup or template. Nuxt 4.6 supports Vapor in interop mode, allowing a mix of Vapor and Virtual DOM components while still enjoying the performance benefits.
However, Vapor Mode does not support the Options API, getCurrentInstance(), or per-element lifecycle events. Component libraries using the Virtual DOM may also require testing and potential adjustments when used within Vapor components. Overall, Vapor Mode offers a promising step forward in Vue's performance and optimization efforts.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.