Vue 3.5.44 补丁发布:四处运行时行为变化值得先扫代码
Vue 3.5.44 于 2026 年 10 月 13 日发布,官方 releases 页显示本版包含 25 个以上修复,覆盖 reactivity、Suspense、Teleport 与 SSR。补丁号容易让人跳过更新日志,但其中至少四条会改变运行时行为,已在 3.5 线上的项目升级成本不高,建议先对照代码扫一遍。[1]
1. watcher 在另一 effect 内运行时不再误收集依赖(issue #5009)
过去 watch 的 getter 若在 watchEffect 回调或 computed 求值过程中执行,内部读到的响应式数据可能挂到外层 effect 上,导致外层被拖着重跑,或本该属于 watcher 的依赖「寄居」别处。3.5.44 后 watcher 依赖与外层隔离。依赖「外层副作用顺带拉起内层 watcher」的写法,升级后可能不再按原路径触发。[1]
2. once: true 的 watcher 回调抛错也会停掉
此前清理逻辑挂在回调正常返回之后,抛错时 watcher 仍活跃,源再变还会进同一回调。现在抛错同样停止;一次性请求/解析失败后若要重试,需自己显式处理。[1]
3. SSR 会传播 async setup 的错误
以前服务端里 async setup reject 可能被吞掉,页面半截或空白却仍返回 HTTP 200。修复后错误会交给 errorHandler / onErrorCaptured 或直接抛出——同一故障可能从「静默坏页」变成「500」,SSR 项目要确认兜底。[1]
4. v-html 正确序列化 0 与 false
绑定值为 0 或 false 时,过去可能被当成空值渲染成空字符串;现在按字符串输出 0、false,计数或开关直出 HTML 的位置会肉眼可见地变化。[1]
升级检查可重点搜:写在 computed / watchEffect / render 里的 watch;once: true 且可能抛错的逻辑;SSR 的 async setup 错误处理;以及 v-html 绑定数值/布尔的位置。建议锁死补丁版本,在 CI 里把关键交互再跑一遍。[1]
来源
[1] 补丁版本也会改行为:Vue 3.5.44 中四处影响运行时的修复,程序员茄子(据 vuejs/core releases),2026年10月。
#Vue #Vue3 #3.5.44 #前端 #补丁

成为第一条评论!
Nobody's responded to this post yet. Add your thoughts and get the conversation going.