跪拜 Guibai
← Back to the summary

Vue 3.6's Vapor Mode and alien-signals Rewrite the Frontend Performance Ceiling

Vue 3.6 Hasn't Officially Released Yet, But It Has Already Set the Direction for Frontend

As of July 2026, Vue 3.6 is still in the Beta phase, with the latest beta.17 released on June 24. However, the two core changes it brings—Vapor Mode and alien-signals—have already completely rewritten the performance ceiling of frontend frameworks. This may be Vue's most important version update since 3.0, perhaps even more disruptive than 3.0 itself.

1. Why Write About a Version That "Hasn't Released" Now?

Vue 3.6's release rhythm is a bit unusual.

From the alpha at the end of 2025 to the beta in February 2026, and then to beta.17 on June 24, the Vue team spent over half a year polishing this version. The official release date for the stable version has not been announced yet, which is rare in Vue's history.

But it is precisely this "slowness" that makes 3.6 stand out.

When Vue 3.0 was released, it brought the Composition API and the Proxy reactivity system—a revolution at the API level. What Vue 3.6 brings is a revolution in the "framework's underlying logic". It doesn't change how you write code, but it completely changes how that code runs.

As one community observer put it: "Vue 3.6 is not a version you must study on release day. But it's likely the kind of version where, when you look back years later, you realize the direction was already set here."

This article helps you understand this "direction" in advance.

2. Vapor Mode: The "Funeral" for the Virtual DOM Officially Begins

2.1 The Era of the Virtual DOM is Being Ended

From React introducing the Virtual DOM in 2013 to Vue 2.0 adopting this solution in 2016, the Virtual DOM has dominated frontend frameworks for over a decade. Its core logic is: build a virtual node tree in memory, compare the old and new trees on every data change, find the minimal differences, and then update the real DOM.

This design was revolutionary at the time. But "fast enough" is not the same as "optimal." Every component render must allocate VNode objects, execute the diff algorithm, and bear runtime overhead. For most applications, this overhead is negligible. But when application complexity rises to a certain level, the Virtual DOM becomes that "last straw."

Vue 3.6's Vapor Mode is here to remove that straw.

2.2 What Exactly is Vapor Mode?

Vapor Mode is a brand-new compilation strategy for Vue Single-File Components. Its core idea is extremely direct: analyze the template at compile time and generate JavaScript code that directly manipulates the real DOM, rather than generating Virtual DOM nodes.

The traditional Vue component runtime flow is:

Parse template → Compile to VNode render function → Generate VNode tree at runtime → Diff comparison → Update DOM

Vapor Mode's flow is:

Parse template → Compile to instructions that directly manipulate the DOMDirectly update the DOM at runtime

No VNode allocation, no tree comparison, no patch calculation. This is exactly what SolidJS and Svelte 5 have been doing—and now Vue can do it too.

2.3 How to Enable: One Line of Code

Vapor Mode is per-component, not all-or-nothing. You can mix Vapor components and traditional Virtual DOM components in the same component tree.

Enabling it is extremely simple—add a vapor attribute to <script setup>:

<script setup vapor>
import { ref } from 'vue'
const count = ref(0)
</script>

<template>
  <button @click="count++">Clicked {{ count }} times</button>
</template>

The same ref, the same template syntax, the same Composition API—just by adding one attribute, the compiler generates instructions that directly manipulate the DOM, instead of a VNode tree.

You can also rename the file to MyComponent.vapor.vue to enable Vapor Mode without modifying the source code.

Vue 3.6 also introduces the createVaporApp() experimental API, which can create a Vapor application instance that does not include the Virtual DOM runtime at all. If you want, you can build a Vue application with absolutely no Virtual DOM.

2.4 Performance Data: Not an "Improvement," but a "Qualitative Change"

The benchmark results for Vapor Mode are what shook the entire frontend community:

Metric Data
Rendering speed in component-dense scenarios Up to 97% improvement
Vapor-only component bundle size Reduced by 20-50%
Mount time for 100,000 components Approximately 100ms
Initial load JS size Reduced by two-thirds
Runtime memory Almost halved

100ms to mount 100,000 components—this means Vue has joined the same performance tier as SolidJS. This is no longer a "progressive improvement," but a quantum leap.

2.5 Limitations: Not a Panacea Yet

Vapor Mode currently has some limitations:

These limitations mean: Vapor Mode is not meant to replace the Virtual DOM, but to give developers the right to "choose on demand". For frequently rendered list items, table rows, and chart components, use Vapor Mode; for complex components relying on Suspense or Options API, continue using the Virtual DOM. The two coexist freely in the same application.

3. alien-signals: The "Engine Swap" for the Reactivity System

If Vapor Mode changes the rendering layer, then alien-signals changes the reactivity layer—Vue's most core underlying engine.

3.1 A 1KB Library Rewrites Vue's Foundation

The story of alien-signals began with Vue core contributor Johnson Chu. While researching how to further improve Vue's reactivity performance, he discovered that Vue 3.5 had shifted to a pure Pull-based algorithm similar to Preact. To continue exploring the possibilities of a Push-Pull hybrid algorithm, he decided to spin off the research independently—this was the birth of alien-signals.

This library is only 1KB compressed. But it is this 1KB library that was ultimately ported back into Vue 3.6's core codebase because its performance was too outstanding.

It is not a theoretical model designed from scratch by the Vue team, but an algorithm verified through extensive micro-benchmarks and proven effective in production environments.

3.2 Why So Fast? The Push-Pull Hybrid Algorithm

The traditional Vue reactivity system uses a Pull-based model: mark as "dirty" when data changes, and only pull the latest values and recalculate dependencies when the component needs to render.

alien-signals uses a Push-Pull algorithm:

Key insight: In most cases, a state change does not cause all computed properties depending on it to be read. The Push-Pull algorithm avoids the inefficient path of "recalculate everything first, then decide if needed," and only performs recalculation when truly necessary.

3.3 Performance Data: 30x, Not a Typo

According to benchmark test data:

Comparison Performance Improvement
Vue 3.6 vs Vue 3.4 Approximately 4x faster
Vue 3.6 vs Vue 3.5 Approximately 1.8x faster
Scenarios reading many computed values Throughput over 30x higher

30 times. This is not a typo. In scenarios reading a large number of computed values, alien-signals' throughput is over 30 times higher than Vue 3.5.

Vue's official beta release notes also confirm: Reactivity performance is about 1.8x faster than Vue 3.5, and computed throughput is over 30x higher. Memory usage is reduced by 65%, and reactive tracking efficiency is improved by 3x. Memory fragmentation is reduced by 82%, enabling efficient handling of million-row data tables.

4. Combined: Vue is Becoming a "Performance Machine"

Vapor Mode and alien-signals are a "dual-engine core swap"—one replaces the rendering engine, the other replaces the reactivity engine.

Vapor Mode solves the "slow rendering" problem: By generating direct DOM manipulation instructions at compile time, it eliminates the runtime overhead of the Virtual DOM.

alien-signals solves the "slow reactivity" problem: Through the Push-Pull hybrid algorithm, dependency tracking and update propagation become more precise and efficient.

The combined effect is: Vue is transforming from a "fast enough framework" into an "extremely fast framework."

The evolution focus of Vue 3.6 is on thoroughly restructuring the reactivity system and rendering mechanism—introducing alien-signals as the underlying engine and launching the Vapor Mode compilation strategy, skipping the Virtual DOM to directly generate native DOM manipulation instructions, to achieve ultimate runtime performance and bundle size compression.

In third-party benchmarks, Vapor Mode's performance is already on par with Solid and Svelte 5. And alien-signals' reactivity performance even surpasses them in certain scenarios.

Vue is using a 1KB reactivity engine plus a compile-time optimized rendering strategy to push itself to the limits of performance.

5. Ecosystem Impact: Are Component Libraries Ready?

Ecosystem adaptation for Vue 3.6 is already underway.

Ant Design Vue is advancing adaptation work, with its next-generation version antdv-next already built on the Ant Design v6 design system. The underlying headless component library @v-c/* has also been released, providing component logic and interaction capabilities for upper-level UI libraries.

Element Plus remains one of the most mainstream desktop component libraries in the Vue 3 ecosystem.

Varlet, as a Vue 3 component library based on Material Design 2 and 3, provides 70+ high-quality general components, supporting both mobile and desktop.

VueUse and Pinia, as the most important utility library and state management library in the Vue ecosystem, are expected to quickly follow up with adaptations after 3.6's official release.

Vue 3.6's vaporInteropPlugin plugin allows the introduction of Vapor components into Virtual DOM applications. This means even if your project is still on Vue 3.5, you can experience some of Vapor Mode's capabilities in advance through this plugin.

6. What Does This Mean for Developers?

6.1 Upgrade Cost: Almost Zero

Vue 3.6 has no breaking changes. This means upgrading from Vue 3.5 to 3.6 requires no modification of any existing code. You just need:

npm install vue@beta

Then you can start enjoying the performance improvements—without changing anything.

6.2 When to Use Vapor Mode?

Vapor Mode is opt-in, not mandatory. The recommended adoption strategy is:

  1. Start from leaf components: Find the components in your application that render most frequently and in the largest numbers—list items, table rows, icon buttons
  2. Add the vapor attribute to these components: Observe the performance changes
  3. Gradually expand to more components: Decide whether to continue based on actual results

Mixed trees work perfectly: A Virtual DOM parent component can render Vapor child components without any special configuration or wrapping.

6.3 When Not to Use Vapor Mode?

If your component meets any of the following conditions, it is recommended to stay on the Virtual DOM path for now:

6.4 How to Choose for New Projects?

For new projects starting in the second half of 2026, it is recommended:

7. Comparison with React 19: Two Different Paths

In 2026, both React 19 and Vue 3.6 have completed major architectural upgrades.

React 19 takes the "Server Components + Automatic Compilation Optimization" route—through RSC, Actions API, and React Compiler, handing state management, form logic, and rendering optimization that previously required manual handling over to the framework for automatic completion.

Vue 3.6 takes the "Reactive Underlying Restructuring + Compile-Time Rendering Optimization" route—restructuring the reactivity engine through alien-signals, and skipping the Virtual DOM through Vapor Mode.

The two paths are completely different, but the goal is the same: reduce developer cognitive load and raise the ceiling of application performance.

Dimension React 19 Vue 3.6
Server Components Native RSC integration Relies on upper-level frameworks like Nuxt
Performance Optimization React Compiler auto memo Vapor Mode skips Virtual DOM
Reactivity System Hooks + manual dependency declaration Proxy + alien-signals auto collection
Bundle Size Optimization RSC zero client bundle growth Vapor Mode removes Virtual DOM runtime

In March 2026, overseas developers posted a real-world comparison of React 19 Compiler and Vue 3.6 Vapor Mode on X. The latest performance optimization features of the two major frameworks went head-to-head—the community is still debating the results. But one thing is certain: the performance war of frontend frameworks has entered a completely new phase in 2026.

Final Words

As of July 2026, Vue 3.6 is still in the Beta phase. The latest beta.17 was released on June 24. The official release date for the stable version has not been announced.

But this does not prevent us from seeing its value in advance.

Vapor Mode makes the Virtual DOM optional. alien-signals makes the reactivity system run with 30 times the throughput of its predecessor. Combined, Vue is evolving from a "progressive framework" into a "performance machine."

More importantly: Vue 3.6 has no breaking changes. You don't need to rewrite code, learn new syntax, or refactor projects—just upgrade the version number, and then choose whether to enable Vapor Mode on demand.

This is a "zero-cost performance upgrade."

As one developer said: "Vue 3.6 is not a version you must study on release day. But it's likely the kind of version where, when you look back years later, you realize the direction was already set here."

Vue 3.6 hasn't officially released yet, but the direction for frontend has already been set by it.

Comments

Top 1 from juejin.cn, machine-translated. The original thread is authoritative.

摸鱼生

Still using 2, numb...