Vue 3.6 升级笔记:Vapor 按需启用,事件委托默认直挂元素
Vue 3.6 于 2026-07-18 在上海 Vue&ViteConf 正式发布,首个 beta 于 2026-02-06,相隔 5 个多月、累计 17 个 beta。同期 Vite 8 落地,Vue 4.0 启动。仓库:vuejs/core,版本说明:vuejs.org/about/releases。
Vapor Mode:100% opt-in,需要时才启用
Vapor 是 Vue 3.6 的核心。在组件上添加 vapor 属性后,该组件跳过虚拟 DOM,直接操作真实 DOM,且 100% opt-in,不影响其它组件。
Vapor 支持现有 Vue API 的子集,行为大体一致;依赖 VNode 或组件公共实例 proxy 的功能在 Vapor 组件中不可用。第三方 benchmark 显示它与 Solid、Svelte 5 同档性能,3.6 RC 时已 feature-complete。
建议的使用场景:现有应用仅对性能敏感的页面局部启用;小型全新应用可以整体使用 Vapor。
rc.2 BREAKING:Vapor 事件委托默认绑定到元素
此前的 Vapor 行为会把受支持的事件自动委托到 document,这会与标准 Vue / 原生 DOM 事件行为不一致。例如祖先元素调用 stopPropagation() 能阻止子元素的处理器执行。Vue 3.6 rc.2 起,DOM 事件默认直接绑定到目标元素,不再自动做 document 级委托。
要继续使用文档级委托,需要在该事件上显式加 Vapor-only 的 .delegate 修饰符:
Click
同时,compilerOptions.eventDelegation 选项已移除。升级时先从编译配置里删除它,再逐个检查确实需要文档级委托的监听器,补上 .delegate。
@vue/reactivity 迁移到 alien-signals
Vue 3.6 将 alien-signals(约 1KB)移植回 @vue/reactivity 核心。官方 RC 说明称能显著改善响应式系统的性能与内存占用;官方 benchmark 数字建议结合自身场景复测。
从 3.5 升到 3.6,现有组合式 API 大多透明,但 computed、watch 的依赖收集和调度实现变了,升级后建议针对这两部分做回归验证。
Vite 8:Rolldown 统一替代 esbuild 与 Rollup
Vite 8 用 Rolldown(Rust)统一替代了开发环境的 esbuild 与生产环境的 Rollup。官方给出的对比是比 Rollup 快约 10–30 倍,插件兼容性保持不变。