This website works better with JavaScript
3.5.32 (2026-04-03)
Bug Fixes
Reverts
3.5.31 (2026-03-25)
Bug Fixes
compiler-sfc: allow Node.js subpath imports patterns in asset urls (#13045 ) (95c3356 ), closes #9919
compiler-sfc: support template literal as defineModel name (#14622 ) (bd7eef0 ), closes #14621
reactivity: normalize toRef property keys before dep lookup + improve types (#14625 ) (1bb28d0 ), closes #12427 #12431
runtime-core: invalidate detached v-for memo vnodes after unmount (#14624 ) (560def4 ), closes #12708 #12710
runtime-core: preserve nullish event handlers in mergeProps (#14550 ) (5725222 )
runtime-core: prevent merging model listener when value is null or undefined (#14629 ) (b39e032 )
runtime-dom: defer teleport mount/update until suspense resolves (#8619 ) (88ed045 ), closes #8603
runtime-dom: handle activeElement check in Shadow DOM for v-model (#14196 ) (959ded2 )
server-renderer: cleanup component effect scopes after SSR render (#14548 ) (862f11e )
suspense: avoid unmount activeBranch twice if wrapped in transition (#9392 ) (908c6ad ), closes #7966
suspense: update suspense vnode's el during branch self-update (#12922 ) (a2c1700 ), closes #12920
transition: skip enter guard while hmr updating (#14611 ) (be0a2f1 ), closes #14608
types: prevent shallowReactive marker from leaking into value unions (#14493 ) (3b561db ), closes #14490
3.5.30 (2026-03-09)
Bug Fixes
compat: add entities to @vue /compat deps to fix CJS edge cases (#12514 ) (e725a67 ), closes #10609
custom-element: ensure child component styles are injected in correct order before parent styles (#13374 ) (1398bf8 ), closes #13029
custom-element: properly locate parent when slotted in shadow dom (#12480 ) (f06c81a ), closes #12479
custom-element: should properly patch as props for vue custom elements (#12409 ) (740983e ), closes #12408
reactivity: avoid duplicate raw/proxy entries in Set.add (#14545 ) (d943612 )
reactivity: fix reduce on reactive arrays to preserve reactivity (#12737 ) (16ef165 ), closes #12735
reactivity: handle Set with initial reactive values edge case (#12393 ) (5dc27ca ), closes #8647
runtime-core: warn about negative number in v-for (#12308 ) (9438cc5 )
ssr: prevent watch from firing after async setup await (#14547 ) (6cda71d ), closes #14546
types: make generics with runtime props in defineComponent work (fix #11374 ) (#13119 ) (cea3cf7 ), closes #13763
types: narrow useAttrs class/style typing for TSX (#14492 ) (bbb8977 ), closes #14489
3.5.29 (2026-02-24)
Bug Fixes
3.5.28 (2026-02-09)
Bug Fixes
transition: avoid unexpected cancelled parameter in transition done callback (#14391 ) (6798853 )
compiler-sfc: add resolution trying for .mts/.cts files (#14402 ) (c09d41f ), closes vuejs/router#2611
compiler-sfc: no params were generated when using withDefaults (#12823 ) (b0a1f05 ), closes #12822
reactivity: add __v_skip flag to EffectScope to 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
3.5.27 (2026-01-19)
Bug Fixes
compile-sfc: correctly handle variable shadowing in for loop for defineProps destructuring. (#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
3.5.26 (2025-12-18)
Bug Fixes
Performance Improvements
compiler-core: use binary-search to get line and column (#14222 ) (1904053 )
3.5.25 (2025-11-24)
Bug Fixes
3.5.24 (2025-11-07)
Reverts
3.5.23 (2025-11-06)
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
3.5.22 (2025-09-25)
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-ignore in 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.BAIL for 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 h helper (#13841 ) (75220c7 )
transition-group: run forceReflow on 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 never instead 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 shadowRoot in 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
3.5.21 (2025-09-02)
Bug Fixes
Performance Improvements
improve regexp performance with non-capturing groups (#13567 ) (1e8b65a )
3.5.20 (2025-08-25)
Bug Fixes
3.5.19 (2025-08-21)
Bug Fixes
compiler-core: adjacent v-else should cause a compiler error (#13699 ) (911e670 ), closes #13698
compiler-core: prevent cached array children from retaining detached dom nodes (#13691 ) (7f60ef8 ), closes element-plus/element-plus#21408 #13211
compiler-sfc: improve type inference for generic type aliases types (#12876 ) (d9dd628 ), closes #12872
compiler-sfc: throw mismatched script langs error before invoking babel (#13194 ) (0562548 ), closes #13193
compiler-ssr: disable v-memo transform in ssr vdom fallback branch (#13725 ) (0a202d8 ), closes #13724
devtools: clear performance measures (#13701 ) (c875019 ), closes #13700
hmr: prevent updating unmounting component during HMR rerender (#13775 ) (6e5143d ), closes #13771 #13772
hydration: also set vShow name if __FEATURE_PROD_HYDRATION_MISMATCH_DETAILS__ flag is enabled (#13777 ) (439e1a5 ), closes #13744
reactivity: warn on nested readonly ref update during unwrapping (#12141 ) (1498821 )
runtime-core: avoid setting direct ref of useTemplateRef in dev (#13449 ) (4a2953f )
runtime-core: improve consistency of PublicInstanceProxyHandlers.has (#13507 ) (d7283f3 )
suspense: don't immediately resolve suspense on last dep unmount (#13456 ) (a871315 ), closes #13453
transition: handle KeepAlive + transition leaving edge case (#13152 ) (3190b17 ), closes #13153
3.5.18 (2025-07-23)
Bug Fixes
compiler-core: avoid cached text vnodes retaining detached DOM nodes (#13662 ) (00695a5 ), closes #13661
compiler-core: avoid self updates of v-pre (#12556 ) (21b685a )
compiler-core: identifiers in function parameters should not be inferred as references (#13548 ) (9b02923 )
compiler-core: recognize empty string as non-identifier (#12553 ) (ce93339 )
compiler-core: transform empty v-bind dynamic argument content correctly (#12554 ) (d3af67e )
compiler-sfc: transform empty srcset w/ includeAbsolute: true (#13639 ) (d8e40ef ), closes vitejs/vite-plugin-vue#631
css-vars: nullish v-bind in style should not lead to unexpected inheritance (#12461 ) (c85f1b5 ), closes #12434 #12439 #7474 #7475
custom-element: ensure exposed methods are accessible from custom elements by making them enumerable (#13634 ) (90573b0 ), closes #13632
hydration: prevent lazy hydration for updated components (#13511 ) (a9269c6 ), closes #13510
runtime-core: ensure correct anchor el for unresolved async components (#13560 ) (7f29943 ), closes #13559
slots: refine internal key checking to support slot names starting with an underscore (#13612 ) (c5f7db1 ), closes #13611
ssr: ensure empty slots render as a comment node in Transition (#13396 ) (8cfc10a ), closes #13394
3.5.17 (2025-06-18)
Bug Fixes
compat: allow v-model built in modifiers on component (#12654 ) (cb14b86 ), closes #12652
compile-sfc: handle mapped types work with omit and pick (#12648 ) (4eb46e4 ), closes #12647
compiler-core: do not increase newlines in InEntity state (#13362 ) (f05a8d6 )
compiler-core: ignore whitespace when matching adjacent v-if (#12321 ) (10ebcef ), closes #9173
compiler-core: prevent comments from blocking static node hoisting (#13345 ) (55dad62 ), closes #13344
compiler-sfc: improved type resolution for function type aliases (#13452 ) (f3479aa ), closes #13444
custom-element: ensure configureApp is applied to async component (#12607 ) (5ba1afb ), closes #12448
custom-element: prevent injecting child styles if shadowRoot is false (#12769 ) (73055d8 ), closes #12630
reactivity: add __v_skip flag to Dep to prevent reactive conversion (#12804 ) (e8d8f5f ), closes #12803
runtime-core: unset old ref during patching when new ref is absent (#12900 ) (47ddf98 ), closes #12898
slots: make cache indexes marker non-enumerable (#13469 ) (919c447 ), closes #13468
ssr: handle initial selected state for select with v-model + v-for/v-if option (#13487 ) (1552095 ), closes #13486
types: typo of vOnce and vSlot (#13343 ) (762fae4 )
3.5.16 (2025-05-29)
Reverts
Revert "fix(compiler-sfc): add scoping tag to trailing universal selector" (#13406 ) (19f23b1 ), closes #13406
Revert "fix(compiler-sfc): add error handling for defineModel() without variable" (#13390 ) (42f879f ), closes #13390
3.5.15 (2025-05-26)
Bug Fixes
compat: ensure false value on input retains value attribute (#13216 ) (1a66474 ), closes #13205
compat: should not warn COMPILER_V_BIND_OBJECT_ORDER when using v-bind together with v-for (#12993 ) (93949e6 ), closes #12992
compile-sfc: handle inline template source map in prod build (#12701 ) (89edc6c ), closes #12682 vitejs/vite-plugin-vue#500
compiler-core: ensure mapping is added only if node source is available (#13285 ) (d37a2ac ), closes #13261 vitejs/vite-plugin-vue#368
compiler-dom: improve HTML nesting validation to allow any child element within template tag (#13320 ) (163b365 ), closes #13318
compiler-sfc: add error handling for defineModel() without variable assignment (#13352 ) (00734af ), closes #13280
compiler-sfc: add scoping tag to trailing universal selector (#12918 ) (949df80 ), closes #12906
compiler-sfc: improve type inference for TSTypeAliasDeclaration with better runtime type detection (#13245 ) (cf5a5e0 ), closes #13240
compiler-sfc: simulate allowArbitraryExtensions on resolving type (#13301 ) (f7ce5ae ), closes #13295
custom-element: allow injecting values from app context in nested elements (#13219 ) (b991075 ), closes #13212
custom-element: ensure proper remount and prevent redundant slot parsing with shadowRoot false (#13201 ) (1d41d4d ), closes #13199
custom-element: preserve appContext during update (#12455 ) (013749e ), closes #12453
custom-element: properly resolve props for sync component defs (#12855 ) (a683c80 ), closes #12854
hydration: handle transition appear hydration edge case (#13339 ) (35aeae7 ), closes #13335
hydration: skip lazy hydration for patched components (#13283 ) (80055fd ), closes #13255
suspense: handle edge case in patching list nodes within Suspense (#13306 ) (772b008 ), closes #13305
teleport: handle deferred teleport updates before and after mount (#13350 ) (d15dce3 ), closes #13349
types: avoid merging component instance into $props in ComponentInstance (#12870 ) (f44feed ), closes #12751
types: exclude undefined from inferred prop types with default values (#13007 ) (5179d32 ), closes #13006
watch: update oldValue before running cb to prevent stale value (#12296 ) (c69c4bb ), closes #12294
3.5.14 (2025-05-15)
Bug Fixes
compat: correct deprecation message for v-bind.sync usage (#13137 ) (466b30f ), closes #13133
compiler-core: remove slot cache from parent renderCache during unmounting (#13215 ) (5d166f3 )
compiler-sfc: fix scope handling for props destructure in function parameters and catch clauses (8e34357 ), closes #12790
compiler-sfc: treat the return value of useTemplateRef as a definite ref (#13197 ) (8ae1122 )
compiler: fix spelling error in domTagConfig (#13043 ) (388295b )
customFormatter: properly accessing ref value during debugger (#12948 ) (fdbd026 )
hmr/teleport: adjust static children traversal for HMR in dev mode (#12819 ) (5e37dd0 ), closes #12816
hmr: avoid hydration for hmr root reload (#12450 ) (1f98a9c ), closes vitejs/vite-plugin-vue#146 vitejs/vite-plugin-vue#477
hmr: avoid hydration for hmr updating (#12262 ) (9c4dbbc ), closes #7706 #8170
reactivity: ensure markRaw objects are not reactive (#12824 ) (295b5ec ), closes #12807
reactivity: ensure multiple effectScope on() and off() calls maintains correct active scope (22dcbf3 ), closes #12631 #12632 #12641
reactivity: should not recompute if computed does not track reactive data (#12341 ) (0b23fd2 ), closes #12337
runtime-core: stop tracking deps in setRef during unmount (#13210 ) (016c472 )
runtime-core: update __vnode of static nodes when patching along the optimized path (#13223 ) (b3ecee3 )
runtime-core: inherit comment nodes during block patch in production build (#10748 ) (6264505 ), closes #10747 #12650
runtime-core: prevent unmounted vnode from being inserted during transition leave (#12862 ) (d6a6ec1 ), closes #12860
runtime-core: respect immutability for readonly reactive arrays in v-for (#13091 ) (3f27c58 ), closes #13087
runtime-dom: always treat autocorrect as attribute (#13001 ) (1499135 ), closes #5705
slots: properly warn if slot invoked in setup (#12195 ) (9196222 ), closes #12194
ssr: properly init slots during ssr rendering (#12441 ) (2206cd2 ), closes #12438
transition: fix KeepAlive with transition out-in mode behavior in production (#12468 ) (343c891 ), closes #12465
TransitionGroup: reset prevChildren to prevent memory leak (#13183 ) (8b848cb ), closes #13181
types: allow return any for Options API lifecycle hooks (#5914 ) (06310e8 )
types: the directive's modifiers should be optional (#12605 ) (10e54dc )
typos: fix comments referencing transformElement.ts (#12551 )ci-skip
Features
3.5.13 (2024-11-15)
Bug Fixes
compiler-core: handle v-memo + v-for with functional key (#12014 ) (99009ee ), closes #12013
compiler-dom: properly stringify template string style (#12392 ) (2d78539 ), closes #12391
custom-element: avoid triggering mutationObserver when relecting props (352bc88 ), closes #12214 #12215
deps: update dependency postcss to ^8.4.48 (#12356 ) (b5ff930 )
hydration: the component vnode's el should be updated when a mismatch occurs. (#12255 ) (a20a4cb ), closes #12253
reactivity: avoid unnecessary watcher effect removal from inactive scope (2193284 ), closes #5783 #5806
reactivity: release nested effects/scopes on effect scope stop (#12373 ) (bee2f5e ), closes #12370
runtime-dom: set css vars before user onMounted hooks (2d5c5e2 ), closes #11533
runtime-dom: set css vars on update to handle child forcing reflow in onMount (#11561 ) (c4312f9 )
ssr: avoid updating subtree of async component if it is resolved (#12363 ) (da7ad5e ), closes #12362
ssr: ensure v-text updates correctly with custom directives in SSR output (#12311 ) (1f75d4e ), closes #12309
ssr: handle initial selected state for select with v-model + v-for option (#12399 ) (4f8d807 ), closes #12395
teleport: handle deferred teleport update before mounted (#12168 ) (8bff142 ), closes #12161
templateRef: set ref on cached async component which wrapped in KeepAlive (#12290 ) (983eb50 ), closes #4999 #5004
test: update snapshot (#12169 ) (828d4a4 )
Transition: fix transition memory leak edge case (#12182 ) (660132d ), closes #12181
transition: reflow before leave-active class after leave-from (#12288 ) (4b479db ), closes #2593
types: defineEmits w/ interface declaration (#12343 ) (1022eab ), closes #8457
v-once: setting hasOnce to current block only when in v-once (#12374 ) (37300fc ), closes #12371
Performance Improvements
reactivity: do not track inner key __v_skip` (#11690 ) (d637bd6 )
runtime-core: use feature flag for call to resolveMergedOptions (#12163 ) (1755ac0 )
3.5.12 (2024-10-11)
Bug Fixes
compiler-dom: avoid stringify option with null value (#12096 ) (f6d9926 ), closes #12093
compiler-sfc: do not skip TSInstantiationExpression when transforming props destructure (#12064 ) (d3ecde8 )
compiler-sfc: use sass modern api if available and avoid deprecation warning (#11992 ) (4474c11 )
compiler: clone loc to ifNode (#12131 ) (cde2c06 ), closes vuejs/language-tools#4911
custom-element: properly remove hyphenated attribute (#12143 ) (e16e9a7 ), closes #12139
defineModel: handle kebab-case model correctly (#12063 ) (c0418a3 ), closes #12060
deps: update dependency monaco-editor to ^0.52.0 (#12119 ) (f7cbea2 )
hydration: provide compat fallback for idle callback hydration strategy (#11935 ) (1ae545a )
reactivity: trigger reactivity for Map key undefined (#12055 ) (7ad289e ), closes #12054
runtime-core: allow symbol values for slot prop key (#12069 ) (d9d4d4e ), closes #12068
runtime-core: fix required prop check false positive for kebab-case edge cases (#12034 ) (9da1ac1 ), closes #12011
runtime-dom: prevent unnecessary updates in v-model checkbox when value is unchanged (#12146 ) (ea943af ), closes #12144
teleport: handle disabled teleport with updateCssVars (#12113 ) (76a8223 ), closes #12112
transition/ssr: make transition appear work with Suspense in SSR (#12047 ) (f1a4f67 ), closes #12046
types: ensure this.$props type does not include string (#12123 ) (704173e ), closes #12122
types: retain union type narrowing with defaults applied (#12108 ) (05685a9 ), closes #12106
useId: ensure useId consistency when using serverPrefetch (#12128 ) (b4d3534 ), closes #12102
watch: watchEffect clean-up with SSR (#12097 ) (b094c72 ), closes #11956
Performance Improvements
reactivity: avoid unnecessary recursion in removeSub (#12135 ) (ec917cf )
3.5.11 (2024-10-03)
Bug Fixes
compiler-sfc: do not skip TSSatisfiesExpression when transforming props destructure (#12062 ) (2328b05 ), closes #12061
reactivity: prevent overwriting next property during batch processing (#12075 ) (d3f5e6e ), closes #12072
scheduler: job ordering when the post queue is flushing (#12090 ) (577edca )
types: correctly infer TypeProps when it is any (#12073 ) (57315ab ), closes #12058
types: should not intersect PublicProps with Props (#12077 ) (6f85894 )
types: infer the first generic type of Ref correctly (#12094 ) (c97bb84 )
3.5.10 (2024-09-27)
Bug Fixes
custom-element: properly set kebab-case props on Vue custom elements (ea3efa0 ), closes #12030 #12032
reactivity: fix nested batch edge case (93c95dd )
reactivity: only clear notified flags for computed in first batch iteration (aa9ef23 ), closes #12045
types/ref: handle nested refs in UnwrapRef (#12049 ) (e2c19c2 ), closes #12044
3.5.9 (2024-09-26)
Bug Fixes
3.5.8 (2024-09-22)
Bug Fixes
reactivity: do not remove dep from depsMap when cleaning up deps of computed (#11995 ) (0267a58 )
3.5.7 (2024-09-20)
Bug Fixes
Performance Improvements
hydration: avoid observer if element is in viewport (#11639 ) (e075dfa )
3.5.6 (2024-09-16)
Bug Fixes
compile-dom: should be able to stringify mathML (#11891 ) (85c138c )
compiler-sfc: preserve old behavior when using withDefaults with destructure (8492c3c ), closes #11930
reactivity: avoid exponential perf cost and reduce call stack depth for deeply chained computeds (#11944 ) (c74bb8c ), closes #11928
reactivity: rely on dirty check only when computed has deps (#11931 ) (aa5dafd ), closes #11929
watch: once option should be ignored by watchEffect (#11884 ) (49fa673 )
watch: unwatch should be callable during SSR (#11925 ) (2d6adf7 ), closes #11924
3.5.5 (2024-09-13)
Bug Fixes
compiler-core: fix handling of delimiterOpen in VPre (#11915 ) (706d4ac ), closes #11913
compiler-dom: fix stringify static edge for partially eligible chunks in cached parent (1d99d61 ), closes #11879 #11890
compiler-dom: should ignore leading newline in <textarea> per spec (3c4bf76 )
compiler-sfc: nested css supports atrule and comment (#11899 ) (0e7bc71 ), closes #11896
custom-element: handle nested customElement mount w/ shadowRoot false (#11861 ) (f2d8019 ), closes #11851 #11871
hmr: reload async child wrapped in Suspense + KeepAlive (#11907 ) (10a2c60 ), closes #11868
hydration: fix mismatch of leading newline in <textarea> and <pre> (a5f3c2e ), closes #11873 #11874
reactivity: properly clean up deps, fix memory leak (8ea5d6d ), closes #11901
runtime-core: properly update async component nested in KeepAlive (#11917 ) (7fe6c79 ), closes #11916
TransitionGroup: not warn unkeyed text children with whitespece preserve (#11888 ) (7571f20 ), closes #11885
3.5.4 (2024-09-10)
Bug Fixes
compiler-sfc: correct scoped injection for nesting selector (#11854 ) (b1de75e ), closes #10567
reactivity: fix markRaw error on already marked object (#11864 ) (67d6596 ), closes #11862
Revert "fix: Revert "fix(reactivity): self-referencing computed should refresh"" (e596378 )
runtime-core: handle shallow reactive arrays in renderList correctly (#11870 ) (ced59ab ), closes #11869
types: correctly infer TypeEmits with both tuple and function syntax (#11840 ) (dad6738 ), closes #11836
Performance Improvements
reactivity: trigger deps directly instead of storing in an array first (#11695 ) (f80d447 )
3.5.3 (2024-09-06)
Bug Fixes
hydration: check __asyncHydrate presence for vue3-lazy-hydration compat (#11825 ) (8e6c337 ), closes #11793
Revert "fix(reactivity): self-referencing computed should refresh" (35c760f )
ssr: respect app.config.warnHandler during ssr (bf3d9a2 ), closes #11830
Transition: handle KeepAlive child unmount in Transition out-in mode (#11833 ) (6b7901d ), closes #11775
useId: make generated IDs selector compatible (babfb4c ), closes #11828
3.5.2 (2024-09-05)
Bug Fixes
Features
compiler-core: parse modifiers as expression to provide location data (#11819 ) (3f13203 )
3.5.1 (2024-09-04)
Bug Fixes
build: improve built-in components treeshakability (4eee630 )
reactivity: handle non-array arguments in reactive concat method (#11794 ) (475977a ), closes #11792
Transition: avoid applying transition hooks on comment vnode (#11788 ) (51912f8 ), closes #11782
types: avoid using intersection type in Readonly<...> to fix JSDoc emit (#11799 ) (7518bc1 )
useTemplateRef: fix readonly warning when useTemplateRef has same variable name as template ref (bc63df0 ), closes #11795 #11802 #11804
3.5.0 (2024-09-03)
Aggregated Features List for 3.5 (alpha to stable)
Reactivity
reactivity : Refactor reactivity system to use version counting and doubly-linked list tracking (#10397 ) (05eb4e0 )
reactivity : Optimize array tracking (#9511 ) (70196a4 )
compiler-sfc: enable reactive props destructure by default (d2dac0e )
reactivity: onEffectCleanup API (2cc5615 ), closes #10173
reactivity: add failSilently argument for onScopeDispose (9a936aa )
reactivity/watch: base watch, getCurrentWatcher, and onWatcherCleanup (#9927 ) (205e5b5 )
reactivity/watch: add pause/resume for ReactiveEffect, EffectScope, and WatchHandle (#9651 ) (267093c )
watch: support passing number to deep option to control the watch depth (#9572 ) (22f7d96 )
types: export MultiWatchSources type (#9563 ) (998dca5 )
types: allow computed getter and setter types to be unrelated (#11472 ) (a01675e ), closes #7271
SSR
runtime-core: useId() and app.config.idPrefix (#11404 ) (73ef156 )
hydration: lazy hydration strategies for async components (#11458 ) (d14a11c )
hydration: support suppressing hydration mismatch via data-allow-mismatch (94fb2b8 )
Custom Element
custom-element: useHost() helper (775103a )
custom-element: useShadowRoot() helper (5a1a89b ), closes #6113 #8195
custom-element: expose this.$host in Options API (1ef8f46 )
custom-element: inject child components styles to custom element shadow root (#11517 ) (56c76a8 ), closes #4662 #7941 #7942
custom-element: support configurable app instance in defineCustomElement (6758c3c ), closes #4356 #4635
custom-element: support css :host selector by applying css vars on host element (#8830 ) (03a9ea2 ), closes #8826
custom-element: support emit with options (e181bff ), closes #7605
custom-element: support expose on customElement (#6256 ) (af838c1 ), closes #5540
custom-element: support nonce option for injected style tags (bb4a02a ), closes #6530
custom-element: support passing custom-element-specific options via 2nd argument of defineCustomElement (60a88a2 )
custom-element: support shadowRoot: false in defineCustomElement() (37d2ce5 ), closes #4314 #4404
Teleport
Misc
runtime-core: useTemplateRef() (3ba70e4 )
runtime-core: add app.onUnmount() for registering cleanup functions (#4619 ) (582a3a3 ), closes #4516
runtime-core: add app.config.throwUnhandledErrorInProduction (f476b7f ), closes #7876
runtime-dom: Trusted Types compatibility (#10844 ) (6d4eb94 )
compiler-core: support Symbol global in template expressions (#9069 ) (a501a85 )
types: export more emit related types (#11017 ) (189573d )
types: add loading prop to iframe (#11767 ) (d86fe0e )
Internals
reactivity: store value cache on CustomRefs impls (#11539 ) (e044b6e )
types: provide internal options for directly using user types in language tools (#10801 ) (75c8cf6 )
types: provide internal options for using refs type in language tools (#11492 ) (5ffd1a8 )
Bug Fixes
compiler-sfc: fix import usage check for kebab-case same name shorthand binding (0f7c0e5 ), closes #11745 #11754
cssVars: correctly escape double quotes in SSR (#11784 ) (7b5b6e0 ), closes #11779
deps: update dependency postcss to ^8.4.44 (#11774 ) (cb843e0 )
hydration: escape css var name to avoid mismatch (#11739 ) (ca12e77 ), closes #11735
hydration: handle text nodes with 0 during hydration (#11772 ) (c756da2 ), closes #11771
reactivity: correctly handle method calls on user-extended arrays (#11760 ) (9817c80 ), closes #11759
runtime-dom: avoid unnecessary prop patch for checkbox (#11657 ) (c3ce9fe ), closes #11647
runtime-dom: prevent unnecessary DOM update from v-model (#11656 ) (b1be9bd ), closes #11647
server-renderer: Fix call to serverPrefetch in server renderer with an async setup (#10893 ) (6039e25 )
server-renderer: render className during SSR (#11722 ) (52cdb0f )
types/defineModel: allow getter and setter types to be unrelated (#11699 ) (fe07f70 ), closes #11697
Bug Fixes
compiler-sfc: skip circular tsconfig project reference (#11680 ) (9c4c2e5 ), closes #11382
custom-element: handle keys set on custom elements (#11655 ) (f1d1831 ), closes #11641
deps: update dependency monaco-editor to ^0.51.0 (#11713 ) (434f8a9 )
keep-alive: reset keep alive flag when the component is removed from include (#11718 ) (29c321b ), closes #11717
reactivity: avoid infinite recursion when mutating ref wrapped in reactive (313e4bf ), closes #11696
reactivity: ensure watcher with once: true are properly removed from effect scope (#11665 ) (fbc0c42 )
runtime-dom: setting innerHTML when patching props should go through trusted types (d875de5 )
types: GlobalDirective / GlobalComponents should not be records (42e8df6 )
Bug Fixes
Features
reactivity: base watch, getCurrentWatcher, and onWatcherCleanup (#9927 ) (205e5b5 )
Performance Improvements
runtime-core: use apply to avoid spreading. (#5985 ) (bb6babc )
Bug Fixes
build: revert entities to 4.5 to avoid runtime resolution errors (e9e0815 ), closes #11603
compiler-core: use ast-based check for function expressions when possible (5861229 ), closes #11615
compiler-sfc: fix prefixIdentifier default value (3d6f015 )
compiler-sfc: handle keyof operator with index object (#11581 ) (fe00815 )
custom-element: keep instance.isCE for backwards compat (e19fc27 )
deps: update dependency postcss to ^8.4.41 (#11585 ) (4c4e12a )
keep-alive: ensure include/exclude regexp work with global flag (#11595 ) (3653bc0 )
reactivity: ensure extended method arguments are not lost (#11574 ) (4085def ), closes #11570
reactivity: sync watch should be executed correctly (#11589 ) (3bda3e8 ), closes #11577
types/computed: ensure type safety for WritableComputedRef (#11608 ) (5cf5a16 )
types: add fallback stub for DOM types when DOM lib is absent (#11598 ) (fee6697 )
Features
deprecated: remove deprecated parseExpressions option (#11597 ) (4e7d5db )
Bug Fixes
custom-element: delay mounting of custom elements with async parent (37ccb9b ), closes #8127 #9341 #9351 #9351
custom-element: delete prop on attribute removal (506c4c5 ), closes #11276
custom-element: ignore scoped id (7f2c505 )
custom-element: reflect prop default value on custom element (63689ed ), closes #9006 #10537
custom-element: support early-set domProps for async custom elements (a07e7bf ), closes #11081 #11082
types/custome-element: defineCustomElement props inference with array emits (#11384 ) (e94b01b ), closes #11353
types: allow using InjectionKey as valid property key (321d807 ), closes #5089
Features
custom-element: expose this.$host in Options API (1ef8f46 )
custom-element: inject child components styles to custom element shadow root (#11517 ) (56c76a8 ), closes #4662 #7941 #7942
custom-element: support configurable app instance in defineCustomElement (6758c3c ), closes #4356 #4635
custom-element: support css :host selector by applying css vars on host element (#8830 ) (03a9ea2 ), closes #8826
custom-element: support emit with options (e181bff ), closes #7605
custom-element: support for expose on customElement (#6256 ) (af838c1 ), closes #5540
custom-element: support nonce option for injected style tags (bb4a02a ), closes #6530
custom-element: support passing custom-element-specific options via 2nd argument of defineCustomElement (60a88a2 )
custom-element: support shadowRoot: false in defineCustomElement() (37d2ce5 ), closes #4314 #4404
custom-element: useHost() helper (775103a )
custom-element: useShadowRoot() helper (5a1a89b ), closes #6113 #8195
hydration: allow fine tuning of lazy hydration strategy triggers (#11530 ) (261c8b1 )
reactivity/watch: add pause/resume for ReactiveEffect, EffectScope, and WatchHandle (#9651 ) (267093c )
reactivity: store value cache on CustomRefs impls (#11539 ) (e044b6e )
runtime-dom: Trusted Types compatibility (#10844 ) (6d4eb94 )
support specifying allowed keys via generic argument in useTemplateRef() (1fbfa69 )
types: allow computed getter and setter types to be unrelated (#11472 ) (a01675e ), closes #7271
types: export MultiWatchSources type (#9563 ) (998dca5 )
types: provide internal options for using refs type in language tools (#11492 ) (5ffd1a8 )
watch: support passing number to deep option to control the watch depth (#9572 ) (22f7d96 )
Features
hydration: support suppressing hydration mismatch via data-allow-mismatch (94fb2b8 )
lazy hydration strategies for async components (#11458 ) (d14a11c )
Bug Fixes
suspense/hydration: fix hydration timing of async component inside suspense (1b8e197 ), closes #6638
useId: properly mark async boundary for already resolved async component (cd28172 )
Bug Fixes
build: enable SSR branches in esm-browser builds (b14cd9a )
compiler-core: change node hoisting to caching per instance (#11067 ) (cd0ea0d ), closes #5256 #9219 #10959
compiler-sfc: should properly walk destructured props when reactive destructure is not enabled (0fd6193 ), closes #11325
types: respect props with default on instance type when using __typeProps (96e4738 )
Features
Bug Fixes
types: fix app.component() typing with inline defineComponent (908f70a ), closes #10843
types: fix compat with generated types that rely on CreateComponentPublicInstance (c146186 ), closes #10842
types: props in defineOptions type should be optional (124c4ca ), closes #10841
Features
runtime-core: add app.onUnmount() for registering cleanup functions (#4619 ) (582a3a3 ), closes #4516
Bug Fixes
reactivity: fix call sequence of ontrigger in effect (#10501 ) (28841fe )
Features
compiler-sfc: enable reactive props destructure by default (d2dac0e )
reactivity: onEffectCleanup API (2cc5615 ), closes #10173
reactivity: add failSilently argument for onScopeDispose (9a936aa )
transition: support directly nesting Teleport inside Transition (#6548 ) (0e6e3c7 ), closes #5836
types: provide internal options for directly using user types in language tools (#10801 ) (75c8cf6 )
Performance Improvements
Previous Changelogs
3.4.x (2023-10-28 - 2024-08-15)
See 3.4 changelog
3.3.x (2023-02-05 - 2023-12-29)
See 3.3 changelog
3.2.x (2021-07-16 - 2023-02-02)
See 3.2 changelog
3.1.x (2021-05-08 - 2021-07-16)
See 3.1 changelog
3.0.x (2019-12-20 - 2021-04-01)
See 3.0 changelog