编程 Vue 3.6 进入 RC:Vapor Mode 特性完备,@vue/reactivity 换用 alien-signals

2026-09-13 21:03:37

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 应用继续可用。

复制全文 生成海报 Vue Vapor Mode 前端 响应式 构建

推荐文章

程序员茄子在线接单