Vue 3.6 换掉 @vue/reactivity 之后:alien-signals 带来的收益,和 Vapor 还够不到的边界
反应式内核已经是 alien-signals
Vue 3.6 的反应式内核换成了 alien-signals(外部信号库),并且已经成为默认实现,不需要任何配置。
官方与第三方基准里,这一步带来明显的性能提升与内存下降。初步集成时的基准显示内存约降 14%。
版本状态
Vue 3.6 目前处于 RC 阶段(v3.6.0-rc.9,2026-09-18),特性集已冻结。官方声明没有破坏性变更,经典 VDOM 模式保持完全支持、行为不变。
Vapor Mode 是新反应式系统之上再走一步
Vapor 组件完全跳过 VDOM,编译器把模板直接编译成命令式 DOM 操作;编译期就知道所有响应式点位,并针对这些点位做优化。
需要注意的是体积收益的获取条件:纯 Vapor 应用能把 VDOM 运行时整个从包里去掉,所以只有全量采用时才完全拿得到这部分收益。
收益最大的是数据密集的响应式应用、低端设备和移动端。
容易踩到的边界
- Vapor 100% opt-in,只支持现有 Vue API 的子集;依赖 VNode 或组件公共实例 proxy 的特性在 Vapor 组件里不可用。
- 不支持 Options API;只支持 SFC(
或)和无 script 块的模板 SFC。 getCurrentInstance()在 Vapor 组件里返回null;@vue:xxx元素生命周期钩子等行为不同。- Suspense 在纯 Vapor 模式不支持,但可以在 VDOM 的 Suspense 里渲染 Vapor 组件;Suspense 本身在 Vue 中仍标注 experimental。
- 第三方库需要更新才能兼容;Vapor 与 VDOM 混用(同时跑两套)可能反而增大体积。
- Nuxt/SSR 下 Vapor 仍属「施工中」,hydration 能用,但每个 RC 都还在修。