Vue 3.6 进入 RC:Vapor Mode 特性完备,@vue/reactivity 换用 alien-signals
Vue 3.6 已进入 RC 阶段(首个预发布 v3.6.0-rc.1,2026-07-18;随后 rc.2 2026-07-22、rc.3 2026-08-11)。这一版包含两块主要内容:Vapor Mode 的预期特性集已经完成,以及基于 alien-signals 重写的 @vue/reactivity。
- 仓库:
- Release notes:
- Vapor Mode 简介:
- alien-signals:
Vapor Mode 是什么
Vapor Mode 是 Vue SFC 的一种新编译模式,目标有两个:减小基础包体积、提升运行性能。它 100% opt-in,不改变默认行为。
它支持一部分现有 Vue API,行为与 VDOM 模式基本一致。但依赖 VNode 或组件公共实例代理(proxy)的特性,在 Vapor 组件中不可用——这是模式本身决定的,不是实现缺失。
在第三方基准 js-framework-benchmark 中,Vapor Mode 的性能与 Solid、Svelte 5 处于同一水平。
如何 opt-in
Vapor Mode 支持仅模板的 SFC,以及使用 `` 的 SFC;不支持 Options API。
开启方式是在 `` 上添加 vapor 属性:
// ...
经典 VDOM 模式仍完全支持且未做改动,Vapor 完全 opt-in,未开启的组件不受影响。
稳定性与适用场景
Vapor Mode 在 Vue 3.6 RC 中特性完备。目前推荐的用法有两类:
- 在现有应用中局部使用,例如把某个性能敏感的页面用 Vapor Mode 实现;
- 用 Vapor Mode 构建小型全新应用。
@vue/reactivity 基于 alien-signals 的重构
3.6 还包含 @vue/reactivity 的一次重大重构,底层改为基于 alien-signals 的实现。这次重构显著提升了响应式系统的性能和内存占用。
与 VDOM 的互操作
两种渲染模式本质上不同,因此存在一些细微的行为不一致。除非此前已经文档化,否则这些差异不被视为破坏性变更。
互操作的一个具体点:Suspense 在 Vapor-only 模式下不支持,但可以在 VDOM 的 Suspense 中渲染 Vapor 组件。也就是说,Suspense 的边界仍然需要由 VDOM 侧提供。
限制
- 不支持 Options API,只能用仅模板 SFC 或 ``。
- 依赖 VNode 或组件公共实例代理的特性在 Vapor 组件中不可用。
- Suspense 在 Vapor-only 模式下不支持,只能在 VDOM 的 Suspense 里包裹 Vapor 组件。
- Vapor 与 VDOM 混用时的细微行为差异,未文档化的部分不算破坏性变更。
当前版本状态
3.6.0-rc.3(2026-08-11)是分支上最新的预发布版本。3.6 仍在活跃开发中,尚未正式发布,属于 beta 阶段:可用于测试和非关键功能,同时关注 changelog。
没有重大破坏性变更,现有 Vue 3.5 应用继续可用。