Vue.js 3.5.41
⚡ Patch Drop — Vue.js 3.5.41 is here, and the core team spent the week squashing bugs across the compiler, runtime, and SSR pipeline.
Compiler Cleanups
🎯 Compiler-core now preserves vnode lifecycle in stable v-for lists, fixing a long-standing issue where keyed children lost their state on re-render (#11682).
🔧 Compiler-SFC handles transformed template ASTs after cache invalidation, killing the stale-cache headaches on incremental rebuilds (#15136).
Runtime Repairs
🛠️ Runtime-core avoids re-fetching resource props when values haven't changed, trimming needless network chatter (#15105).
🔄 SSR setup state is restored correctly when handling async setup results — hydration mismatches on async components are fixed (#15114).
🚦 The scheduler no longer stack-overflows when flushing very large post-callback arrays. Big reactive graphs, meet your savior (#15143).
Custom Element & Rendering Fixes
🧩 Custom elements preserve nested async mount order, so children mount in the right sequence again (#15154).
⚠️ New warning fires when props override native properties on custom elements — a footgun that's finally visible (#12125).
🎨 Transition now supports transitioning to teleport component children (#11959).
🌊 SSR normalizes hidden states during hydration, and v-model preserves text input before hydration (#13125, #14411).
Type & Slot Touch-ups
📝 Types preserve defineModel inference with factory defaults, so autocomplete stays sharp (#15097).
📦 Slots handle nullish v-bind slot props without blowing up (#15177).
Upgrade at Your Own Pace
⬆️ No breaking changes, no deprecations — a pure bug-fix patch. Run your package manager's update and move on with your day.