Vue.js: Vapor Mode Edge Cases Get Cleaned Up
Today's activity centers on Vue's Vapor runtime, with four separate fixes addressing how components handle props, class bindings, teleported content, and type inference when combined with features like KeepAlive and Teleport. The pattern points to Vapor mode maturing through edge-case hardening as it approaches broader compatibility with VDOM behavior.
Duration: PT2M26S
Episode overview
This episode is a short developer briefing from Vue.js.
It explains recent repository work in plain language.
- Show: Vue.js
- Published: 2026-08-10T13:09:43Z
- Audio duration: PT2M26S
Transcript excerpt
This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.
Good morning, it's August 10th, and this is your Vue-dot-J-S briefing.
Today's theme is clear: Vapor mode is getting hardened against edge cases that VDOM already handled, and several of those gaps involved component lifecycle interactions.
Start with PR 15251 from edison1105. Vapor component props are wired directly to live parent data sources. That's efficient, but it meant a component cached by KeepAlive could keep reacting to parent changes after being deactivated — running render effects and watchers on stale or invalid props. The fix pauses the…
Related, PR 15238, also from edison1105, fixes teleport targets not being cleaned up when scope is disposed — specifically when slot items using Teleport are dynamically removed. Without this, you could end up with orphaned DOM elements, like modals that don't fully unmount. Both of these are lifecycle-and-cleanup…
Second theme: prop normalization gaps. PR 15230 from lazerg fixes a case where a component declaring a class prop directly would fail type checks, because Vapor passed raw compiler output through instead of normalizing it the way VDOM's base vnode creation does. The fix aligns Vapor's behavior with VDOM's existing…
On the…