Vue.Js Core Release Notes
Last updated: Feb 12, 2026
- Feb 9, 2026
- Date parsed from source:Feb 9, 2026
- First seen by Releasebot:Feb 12, 2026
Vue.Js Core by Vue
3.5.28
Vue.js core delivers a broad bug fix release touching transitions, SFC file resolution, reactivity flags, and runtime behavior. The update sharpens reliability in async updates, element handling, and edge cases like teleport targets and style changes.
Bug Fixes
- transition: avoid unexpected
cancelledparameter in transitiondonecallback (#14391) (6798853) - compiler-sfc: add resolution trying for
.mts/.ctsfiles (#14402) (c09d41f), closes vuejs/router#2611 - compiler-sfc: no params were generated when using withDefaults (#12823) (b0a1f05), closes #12822
- reactivity: add
__v_skipflag toEffectScopeto prevent reactive conversion (#14359) (48b7552), closes #14357 - runtime-core: avoid retaining el on cached text vnodes during static traversal (#14419) (4ace79a), closes #14134
- runtime-core: prevent child component updates when style remains unchanged (#12825) (57866b5), closes #12826
- runtime-core: properly handle async component update before resolve (#11619) (e71c26c), closes #11617
- runtime-dom: handle null/undefined handler in withModifiers (#14362) (261de54), closes #14361
- teleport: properly handling disabled teleport target anchor (#14417) (d7bcd85), closes #14412
- transition-group: correct move translation under scale via element rect (#14360) (0243a79), closes #14356
- useTemplateRef: don't update setup ref for useTemplateRef key (#12756) (fc40ca0), closes #12749
- Jan 19, 2026
- Date parsed from source:Jan 19, 2026
- First seen by Releasebot:Jan 19, 2026
Vue.Js Core by Vue
3.5.27
Vue delivers a bug fix update across compilation, runtime, and server rendering. Key fixes include correct for loop destructuring, indexed access types, and inherited iterator methods, plus safer className handling and skipping patching reserved props.
Bug Fixes
- compile-sfc: correctly handle variable shadowing in for loop for
definePropsdestructuring. (#14296) (6a1bb50), closes #14294 - compiler-sfc: handle indexed access types in declare global blocks (#14260) (e4091fe), closes #14236
- compiler-sfc: use correct scope when resolving indexed access types from external files (#14297) (f0f0a21), closes #14292
- reactivity: collection iteration should inherit iterator instance methods (#12644) (3c8b2fc), closes #12615
- runtime-core: skip patching reserved props for custom elements (#14275) (19cc7e2), closes #14274
- server-renderer: use ssrRenderClass helper for className attribute (#14327) (a4708f3)
- ssr: handle v-bind modifiers during render attrs (#14263) (c2f5964), closes #14262
All of your release notes in one feed
Join Releasebot and get updates from Vue and hundreds of other software products.
- Dec 18, 2025
- Date parsed from source:Dec 18, 2025
- First seen by Releasebot:Jan 8, 2026
Vue.Js Core by Vue
3.5.26
Vue.js core patches fix compatibility, SSR, and runtime edge cases while boosting performance. Highlights include corrected v-model and hmr handling, safer keep-alive caching, and a faster line/column mapping pass.
Bug Fixes
- compat: fix compat handler of draggable (#12445) (ed85953), closes #12444
- compat: handle v-model deprecation warning with missing appContext (#14203) (945a543), closes #14202
- compiler-sfc: demote const reactive bindings used in v-model (#14214) (e24ff7d), closes #11265 #11275
- compiler-ssr: handle ssr attr fallthrough when preserve whitespace (#12304) (4783118), closes #8072
- hmr: handle cached text node update (#14134) (69ce3c7), closes #14127
- keep-alive: use resolved component name for async components in cache pruning (#14212) (dfe667c), closes #14210
- runtime-core: ensure correct anchor el for deeper unresolved async components (#14182) (f5b3bf2), closes #14173
- runtime-core: handle patch stable fragment edge case (#12411) (94aeb64), closes #12410
- runtime-core: pass component instance to flushPreFlushCbs on unmount (#14221) (e857e12), closes #14215
Performance Improvements
Original source Report a problem - Nov 24, 2025
- Date parsed from source:Nov 24, 2025
- First seen by Releasebot:Jan 8, 2026
Vue.Js Core by Vue
3.5.25
Vue core bug fixes streamline compiler comment and whitespace behavior, warn on provide after mounting, preserve readonly status for iterated reactive items, fix ref unwrap edge cases, and tidy suspense fallback cleanup while preserving typing.
Bug Fixes
- compiler: share logic for comments and whitespace (#13550) (2214f7a)
- provide: warn when using
provideafter mounting (#13954) (247b2c2), closes #13921 #13924 - reactivity: correctly wrap iterated array items to preserve their readonly status (#14120) (301020b)
- reactivity: toRef edge cases for ref unwrapping (#12420) (0d2357e)
- runtime-core: keep options API typing intact when expose is used (#14118) (8f82f23), closes #14117 vuejs/language-tools#5069
- suspense: defer clearing fallback vnode el in case it has dirs (#14080) (c0f63dd), closes #14078
- Nov 6, 2025
- Date parsed from source:Nov 6, 2025
- First seen by Releasebot:Jan 19, 2026
Vue.Js Core by Vue
3.5.23
Vue update delivers a sweeping set of bug fixes across compiler, runtime, and SSR. It tightens type handling, improves in DOM template behavior, hydration, and custom-element patching, plus safer iframe attributes and GC-friendly suspense cleanup.
Bug Fixes
- compiler-core: correctly handle ts type assertions in expressions (#13397) (e6544ac), closes #13395
- compiler-core: fix v-bind shorthand handling for in-DOM templates (#13933) (b3cca26), closes #13930
- compiler-sfc: resolve numeric literals and template literals without expressions as static property key (#13998) (75d44c7)
- compiler-ssr: textarea with v-text directive SSR (#13975) (006a0c1)
- compiler: using guard instead of non-nullish assertion (#13982) (dcc6f36)
- custom-element: batch custom element prop patching (#13478) (c13e674), closes #12619
- custom-element: optimize slot retrieval to avoid duplicates (#13961) (84ca349), closes #13955
- hydration: avoid mismatch during hydrate text with newlines in interpolation (#9232) (6cbdf78), closes #9229
- runtime-core: pass props and children to loadingComponent (#13997) (40c4b2a)
- runtime-dom: ensure iframe sandbox is handled as an attribute to prevent unintended behavior (#13950) (5689884), closes #13946
- suspense: clear placeholder and fallback el after resolve to enable GC (#13928) (f411c66)
- transition-group: use offsetLeft and offsetTop instead of getBoundingClientRect to avoid transform scale affect animation (#6108) (dc4dd59), closes #6105
- v-model: handle number modifier on change (#13959) (8fbe48f), closes #13958
- Sep 25, 2025
- Date parsed from source:Sep 25, 2025
- First seen by Releasebot:Jan 19, 2026
Vue.Js Core by Vue
3.5.22
Vue core update bundles numerous bug fixes across compiler and runtime, plus a new custom-element option and improved typing. This release sharpens SSR priority, prevents invalid CSS, and enhances reactivity and teleports.
Bug Fixes
- compiler-core: identifiers in switch-case should not be inferred as references (#13923) (5953c9f)
- compiler-dom: nodes with v-once shouldn't be stringified (#13878) (95c1975)
- compiler-sfc: add support for
@vue-ignorein runtime type resolution (#13906) (ba7f7f9) - compiler-sfc: enhance inferRuntimeType to support TSMappedType with indexed access (#13848) (e388f1a), closes #13847
- compiler-sfc: ensure css custom properties do not start with a digit (#13870) (9c27951)
- compiler-sfc: ensure props bindings register before compiling template (#13922) (abd5638), closes #13920
- compiler-ssr: ensure v-show has a higher priority in SSR (#12171) (836b829), closes #12162
- custom-element: properly mount multiple Teleports in custom element component w/ shadowRoot false (#13900) (5e1e791), closes #13899
- custom-element: set prop runs pending mutations before disconnect (#13897) (c4a88cd), closes #13315
- custom-element: use
PatchFlags.BAILfor slot when props are present (#13907) (5358bca), closes #13904 - reactivity: respect readonly during ref unwrapping (#13905) (aba7fed), closes #13903
- reactivity: update iterator to check for completion instead of value presence (#13761) (2078f8b)
- runtime-core: simplify block-tracking disabling in
hhelper (#13841) (75220c7) - transition-group: run
forceReflowon the correct document (fix #13849) (#13853) (1be5ddf) - types: more precise types for Events and added missing definitions (#9675) (8bb8fb2)
- types: set dom stub type to
neverinstead of{}(#13915) (8620a61), closes #11564 - types: widen directive arg type from string to any (#13758) (4b71706), closes #13757
Features
- custom-element: allow specifying additional options for
shadowRootin custom elements (#12965) (47e628d), closes #12964
Reverts
- Revert "fix(hmr): prevent VUE_HMR_RUNTIME from being overwritten by vue runtime in 3rd-party libraries" (#13925) (6b68f72), closes #13925
- Sep 2, 2025
- Date parsed from source:Sep 2, 2025
- First seen by Releasebot:Jan 19, 2026
Vue.Js Core by Vue
3.5.21
Vue core delivers a bug fixes focused update across compiler, SFC, runtime and HMR with several stability and safety improvements. It also boosts performance by optimizing regexp handling.
Bug Fixes
- compiler-core: force dynamic slots when slot referencing scope vars (#9427) (99d54b2), closes #9380
- compiler-sfc: check lang before attempt to compile script (#13508) (55922ff), closes #8368
- compiler-sfc: support
${configDir}in paths for TypeScript 5.5+ (#13491) (8696e34), closes #13484 - compiler-sfc: support global augments with named exports (#13789) (35da3c6)
- custom-element: prevent defineCustomElement from mutating the options object (#13791) (e322436)
- hmr: prevent
__VUE_HMR_RUNTIME__from being overwritten by vue runtime in 3rd-party libraries (#13817) (1392734), closes vitejs/vite-plugin-vue#644 - hmr: prevent update unmounting component during HMR reload (#13815) (ef20b86), closes vitejs/vite-plugin-vue#599
- runtime-core: disable tracking block in h function (#8213) (8f6b505), closes #6913
- runtime-core: use separate emits caches for components and mixins (#11661) (15fc75f)
- Suspence: handle Suspense + KeepAlive HMR updating edge case (#13076) (5d75a17), closes #13075
- Teleport: hydrate disabled Teleport with undefined target (#11235) (00978f7), closes #11230
- templateRef: prevent unnecessary set ref on dynamic ref change or component unmount (#12642) (93ba107), closes #12639
- watch: use maximum depth for duplicates (#13434) (f2699a5)
Performance Improvements
Original source Report a problem
This is the end. You've seen all the release notes in this feed!