fix(deps): update vue monorepo to v3 (major) - autoclosed
This MR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
@vue/compiler-sfc (source) | 2.7.14 -> 3.2.45 |
||||
vue (source) | 2.7.14 -> 3.2.45 |
Release Notes
vuejs/core
v3.2.45
Bug Fixes
- compiler/v-model: catch incorrect v-model usage on prop bindings (001184e), closes #5584
- custom-elements: also dispatch hyphenated version of emitted events (#5378) (0b39e46), closes #5373
- custom-elements: custom element should re-instantiate when inserted again (#6966) (67890da), closes #6934
- custom-elements: define declared properties in constructor (#5328) (55382ae)
- custom-elements: ensure custom elements can inherit provides from ancestors (#5098) (192dcb6), closes #5096
- custom-elements: fix event emitting for async custom elements (#5601) (665f2ae), closes #5599
- custom-elements: fix number type props casting check (89f37ce), closes #5793 #5794
- custom-elements: properties set pre-upgrade should not show up in $attrs (afe8899)
- custom-elements: respect slot props in custom element mode (ffef822)
- custom-elements: should not reflect non-decalred properties set before upgrade (5e50909)
- hmr/keep-alive: fix error in reload component (#7049) (a54bff2), closes #7042
- runtime-core: fix move/removal of static fragments containing text nodes (#6858) (4049ffc), closes #6852
- sfc: also generate getter for import bindings during dev (0594400)
-
sfc: ensure
<script setup>
binding behavior consistency onthis
between prod and dev (f73925d), closes #6248 -
sfc: ensure consistent dev/prod behavior for non-reactive variables declared in
<script setup>
(5a3d45a), closes #5655 - teleport/css-v-bind: fix css v-bind for teleported content (42239cf), closes #4605 #4609
- teleport/css-v-bind: fix css v-bind in teleport in child component slot (11214ee)
- v-model: fix incorrect codegen for non-ref bindings (15e889a), closes #6241
v3.2.44
Bug Fixes
- watch: for immediate watch with single source, ensure cb is called with undefined as oldValue (#7075) (5dc593b), closes #7074
v3.2.43
Bug Fixes
v3.2.42
Bug Fixes
- compiler-core/v-on: only apply case preservation on native elements (#6902) (5bfe438), closes #6900
- compiler-core/v-on: support inline handler with return type annotation (#6769) (bcfe480), closes #6378
-
compiler-core: avoid duplicate keys in codegen with
v-if
(#6689) (640cfce), closes #6641 - compiler-core: fix parsing error on comments between v-if in prod (dd3354c), closes #6843
- compiler-core: keep whitespaces between interpolation and comment (#6828) (4887618), closes #6352
-
compiler-sfc: add semicolon after
defineProps
statement (#6461) (b72a4af), closes #6428 - compiler-sfc: allow type annotation for defineEmits variable (#5394) (eab7604), closes #5393
- compiler-sfc: check import source during binding analysation (#6826) (4a00fdd), closes #6825
- compiler-sfc: fix binding analysis for aliased late import (8d1f526)
- compiler-sfc: fix macro usage in multi-variable declaration (#6778) (99b6697), closes #6757
- compiler-sfc: handle method shorthand syntax in withDefaults (#6972) (8a882ce), closes #6971
- compiler-sfc: only escape parsing-breaking characters in v-bind css var names (#6816) (57c9013), closes #6803
- compiler-sfc: require <template> or <script> in SFC (#6781) (a0c7f27), closes #6676
- compiler-sfc: resolve computed object key (#6963) (910fa76)
- compiler-sfc: support using extends interface with defineProps() (#4512) (83f7e6f), closes #4498
- compiler-ssr: fix invalid codegen when v-slot name is explicit empty attr (#3326) (09bb3e9)
- compiler/runtime-dom: ignore comments in inline styles (#6808) (50e2253), closes #6807
- compiler: avoid namespace collisions when transforming template refs in inline mode (#6975) (2c27556), closes #6964
- hmr: fix hmr for components managed by keep-alive (#6809) (bdaf83a), closes #6222
- reactivity-transform: add semicolon after statements (#6303) (c4f213b)
- reactivity-transform: respect user defined symbols that conflict with macros (#6840) (7663a79), closes #6838
- reactivity: enable trigger when use str to set length of arr (#6810) (e6224f4)
-
runtime-core:
in
operator returningfalse
for built-in instance properties inexposeProxy
(#6138) (32b5124), closes #6137 - runtime-core: custom-element: ensure number casting of camelCase props. (fix: #5374) (#5377) (b0b74a1)
- runtime-core: do not throw on unknown directives (#6671) (0455378), closes #6340
- runtime-core: ensure props definition objects are not mutated during props normalization (close: #6915) (#6916) (54b6ba3)
-
runtime-core: watching multiple values - handle
undefined
as initial values (fix: #5032) (#5033) (bc167b5) - runtime-dom: ensure customElement handles empty props correctly. (#6182) (f67bb50), closes #6163 #6895
- sfc/types: improve the type inference using withDefaults (#6764) (168c857), closes #6552
- shared: fix parsing of multi-line inline style (#6777) (9768949)
- ssr: remove css number value check (#6636) (79e7c1e), closes #6625
- transition/keep-alive: fix unmount bug for component with out-in transition (#6839) (64e6d92), closes #6835
- types/reactivity-transform: fix type when initial value is not used (#6821) (fdc5902), closes #6820
-
types:
$watch
callback parameters type (#6136) (41d9c47), closes #6135 - types: ensure createBlock() helper accepts Teleport and Supsense types (fix: #2855) (#5458) (e5fc7dc)
-
types: export
Raw
type (#6380) (e9172db), closes #7048 - types: should unwrap tuple correctly (#3820) (e816812), closes #3819
-
types: stricter type condition for
EventHandlers
(#6855) (bad3f3c), closes #6899 - types: support inferring injected properties in options api (#6804) (e4de623), closes #3031 #5931
- v-model: fix trim modifier on events with non-string args ( (#5770) (018b850), closes #5765
v3.2.41
Bug Fixes
- devtools: avoid memory leak caused by devtools event buffer (24f4c47), closes #6591
- devtools: use cleanupBuffer instead of modifying _buffer (#6812) (35a113e)
- effectScope: calling off() of a detached scope should not break currentScope (a71f9ac)
- runtime-core: ensure that errors in slot function execution do not affect block tracking (#5670) (82a73da), closes #5657
- runtime-core: fix v-for ref reactivity behavior difference between prod and dev (#6714) (9ae796d), closes #6697
- runtime-dom: fix event timestamp check in iframes (5ee4053), closes #2513 #3933 #5474
v3.2.40
Bug Fixes
- compat: list cjs dependencies for compat build (96cd924), closes #6602
- compiler-dom: remove v-bind boolean attribute with literal false value when stringifying (#6635) (6c6fe2c), closes #6617
- compiler-sfc: fix expression check for v-on with object literal value (#6652) (6958ec1), closes #6650 #6674
- compilre-core: dynamic v-on and static v-on should be merged (#6747) (f9d43b9), closes #6742
- runtime-core: avoid hoisted vnodes retaining detached DOM nodes (fc5bdb3), closes #6591
- runtime-core: Lifecycle hooks should support callbacks shared by reference (#6687) (c71a08e), closes #6686
- runtime-core: remove prod-only hoisted clone behavior for manual DOM manipulation compat (aa70188), closes #6727 #6739
- runtime-core: unset removed props first in full diff mode (c0d8db8), closes #6571
- runtime-dom: fix unnecessary warning when setting coerced dom property value (b1817fe), closes #6616
- ssr: avoid ast.helpers duplication (#6664) (57ffc3e)
- ssr: fix dynamic slot regression in ssr (8963c55), closes #6651
- ssr: fix hydration mismatch when entire multi-root template is stringified (9698dd3), closes #6637
- ssr: fix pre tag windows newline hydration mismatch (0382019), closes #6410
- ssr: respect case when rendering dynamic attrs on svg (121eb32), closes #6755
v3.2.39
Bug Fixes
- runtime-core: avoid double firing when mounting inside a watcher callback (6aaf8ef), closes #6614
- runtime-core: support extends template for runtime compiler (#6250) (9875ecd), closes #6249
- ssr: reset current instance (#6184) (6493da5), closes #6110
- types: support TypeScript 4.8 (5381abc), closes #6554
v3.2.38
Bug Fixes
- compiler-sfc: fix template usage check edge case for v-on statements (769e555)
- compiler-sfc: only add decorators-legacy parser plugin when new decorators plugin is not used (3ff8369)
- compiler-sfc: rewriteDefault for class with decorators (#6320) (81a7819), closes #6318
- custom-element: fix event listeners with capital letter event names on custom elements (0739f89)
- hmr: fix HMR for nested non-SFC components (#4077) (96eb745)
- reactivity: fix shallow/readonly edge cases (a95554d)
- runtime-core: only set cache for object keys (#6266) (c3465c1)
- slots: ensure different branches of dynamic slots have different keys (00036bb), closes #6202
-
ssr: forward helpers provided by CSS
v-bind
(#6489) (2024d11), closes #6201 - types: add types field for sub package exports (c1ee6ca)
- types: fix on* props incorrect type for TS 4.7 (#6216) (8dcb6c7), closes #6052
- watch: flush:pre watchers should not fire if state change causes (78c199d), closes #2291
Features
- custom-elements: automatically respect custom elements when compiling in browser (9f8f07e)
Performance Improvements
v3.2.37
Bug Fixes
- compiler-sfc: improve css v-bind parsing (e60244b), closes #6022
- runtime-core: hydrate Static vnode (#6015) (11e17a1), closes #6008
- sfc: avoid auto name inference leading to unwanted recursion (9734b31), closes #5965 #6027 #6029
- ssr: ensure app can be unmounted when created with createSSRApp() (#5992) (d4d3319), closes #5990
- ssr: hydration for transition wrapper components with empty slot content (#5995) (eb22a62), closes #5991
v3.2.36
Bug Fixes
- compat: fix app-level asset registration affecting other local apps (#5979) (7fb5732)
- compat: fix globalProperties pollution in v3 mode (2f07e34), closes #5699
- compiler-core: fix svg with directives being incorrectly hoisted (#5919) (7fbc933), closes #5289
-
sfc/types: allow use default factory for primitive types in
withDefaults
(#5939) (b546282), closes #5938 - transition: fix cancel leave regression (#5974) (dddbd96), closes #5973
Performance Improvements
v3.2.35
Bug Fixes
- compiler-sfc: fix usage detection for types in v-for/v-slot expressions (583b625), closes #5959
-
types: fix typescript error when spreading
$props
(#5968) (0c7fd13) - types: restore DefineComponent argument order (8071ef4), closes #5416 #3796 #5967
v3.2.34
Bug Fixes
- compiler-core: should generate HYDRATE_EVENTS flag on dynamic component that resolves to element (415091b), closes #5870
-
compiler-sfc: support
export { default } from '...'
(#5937) (73e6523), closes #5935 - compiler-sfc: type-only defineProps does not recognize Promise (fix #5941) (#5943) (991d623)
- compiler-ssr: fix component event handlers inheritance in ssr (f811dc2), closes #5664
- compiler-ssr: fix wrong attrs fallthrough on non-single-root v-if branches (516bc54), closes #5140
- compiler-ssr: only inject fallthrough attrs for root transition/keep-alive (c65b805)
- keep-alive: fix keep-alive rendering when placed in vnode branch (0841b9b), closes #4817
- runtime-core: adjust force diff of dev root fragments (cdda49b), closes #5946
- ssr/teleport: support nested teleports in ssr (595263c), closes #5242
- ssr: fix hydration error on falsy v-if inside transition/keep-alive (ee4186e), closes #5352
- ssr: fix hydration error when teleport is used as component root (b60cff0), closes #4293
- ssr: fix hydration error when transition contains comment children (3705b3b), closes #5351
- ssr: fix hydration for slot with empty text node (939209c), closes #5728
- ssr: fix hydration mismatch caused by multi-line comments inside slot (e1bc268), closes #5355
- ssr: inherit scope id on functional component during ssr (847d7f7), closes #5817
- ssr: render fallthrough attributes for transition-group with tag (aed10c5), closes #5141
- ssr: support client-compiled v-model with dynamic type during ssr (#5787) (c03459b), closes #5786
- types: export ComponentProvideOptions (#5947) (3e2850f)
-
types: fix
defineComponent
inference toComponent
(#5949) (7c8f457)
v3.2.33
Bug Fixes
- compat: copy additional properties for functions bound via globalProperties (#4873) (1612971), closes #4403
- compiler-sfc: handle type modifier in import specifiers (#5498) (8e29ef6)
- custom-elements: work with async component + slots (#4657) (f4d2c9f), closes #4639
- reactivity-transform: should not rewrite catch param (#5711) (1f14f19), closes #5709
- reactivity: fix ref tracking of self-stopping effects (154233a), closes #5707
- runtime-core: ensure custom events are not emitted anymore after unmount. (#5679) (71c9536), closes #5674
- runtime-core: fix use of non-existent-in-prod internal property in defineProperty trap (f641c4b), closes #5710
- runtime-dom: catch more cases of DOM property setting error (#5552) (fa1d14c), closes #5545
- runtime-dom: patch translate as an attr (#5485) (2c09969), closes #5462
- runtime-dom: properly handle style properties with undefined values (#5348) (85af139), closes #5322
- ssr: avoid rendering reserved internal keys in output (#5564) (cc238cd), closes #5563
- transition: fix broken leave transition on dev root fragment (#5268) (767d212)
- transition: handle transition for v-if branches with comment (62eba63), closes #5675
v3.2.32
Bug Fixes
- devtools: perf: use high-resolution time (1070f12)
- reactivity: fix currentScope loss when running detached effect scope (#5575) (0a301d4)
- runtime-core/template-ref: named ref in v-for regression fix (#5118) (cee1eaf), closes #5116 #5447 #5525
- runtime-core: allow spying on proxy methods regression (#5417) (1574edd), closes #5415 #4216
- runtime-core: Avoid mutating original options object in createApp (#4840) (d121a9b), closes #4398
- runtime-core: ensure custom directive instance properly exposes properties on closed instances. (#5022) (f44087e), closes #5018
- runtime-core: fix event listener as dynamicProp is added erroneously to props (#5517) (8eceabd), closes #5520
- transition: ensure flattened transition group children inherit parent keys (4311ddd), closes #4718 #5360 #5392
v3.2.31
Bug Fixes
- compiler-ssr: no need to inject resolveDirective calls for setup custom directives (436c500)
- runtime-core: allow spying on proxy methods (#4216) (8457d8b)
- ssr: always hydrate children for HMR (#5406) (0342fae), closes #5405
v3.2.30
Features
Performance Improvements
- reactivity: optimize effect/effectScope active state tracking (2993a24)
v3.2.29
Bug Fixes
- compiler-sfc: fix css v-bind inside other css functions (16fa18d), closes #5302 #5306
- reactivity: ensure readonly refs can be replaced with new refs in reactive objects (#5310) (4be1037), closes #5307
- runtime-dom: fix static content re-insertion (9aa5dfd), closes #5308
v3.2.28
- build: fix build script (3d80b15)
- fix(compat): convertLegacyVModelProps should merge model option in mixins (#5251) (72130ac), closes #5251
- fix(compat): ensure fallthrough *Native events are not dropped during props update (#5228) (97f6bd9), closes #5228
- fix(compat): simulate Vue 2.6.14 version in compat build (#5293) (d0b9708), closes #5293
- fix(compiler-core): handle v-memo in template v-for (#5291) (9f55e6f), closes #5291 #5288
- fix(compiler-sfc): support complex expression in CSS v-bind() (#5114) (95d49bf), closes #5114 #5109
- fix(compiler-sfc/reactivity-transform): fix edge case where normal script has ref macros but script (4768f26)
- fix(reactivity-transform): apply transform for labelled variable declarations (a05b000), closes /github.com/vuejs/core/issues/5298#issuecomment-1017970061
- fix(reactivity-transform): apply transform on exported variable declarations (a81a992), closes #5298
- fix(reactivity): differentiate shallow/deep proxies of same target when nested in reactive (9c304bf), closes #5271
- fix(reactivity): mutating a readonly ref nested in a reactive object should fail. (#5048) (171f5e9), closes #5048 #5042
- fix(runtime-core): ensure mergeProps skips undefined event handlers (#5299) (c35ec47), closes #5299 #5296
- fix(ssr): only cache computed getters during render phase (2f91872), closes #5300
- fix(types): calling readonly() with ref() should return Readonly<Ref> (#5212) (c64907d), closes #5212
- refactor: includes instead of indexOf (#5117) (63210fe), closes #5117
- chore: bump marked (0c06c74)
- chore: comment dom tag config usage [ci skip] (b2bac9f)
- chore: fix typo (#5261) [ci skip] (e603fd2), closes #5261
- chore: fix typo (#5282) [ci skip] (e802275), closes #5282
- chore: type improvements (#5264) (92e04a6), closes #5264
- chore: update repo references (ae4b078)
- perf(reactivity): optimize effect run condition (25bc654)
- feat(reactivity): add isShallow api (9fda941)
- docs(contributing): missing structure info for compiler-sfc (#3559) [ci skip] (8cbfe09), closes #3559
v3.2.27
Bug Fixes
- KeepAlive: remove cached VNode properly (#5260) (2e3e183), closes #5258
- reactivity-transform: should not rewrite for...in / for...of scope variables (7007ffb)
- sfc-playground: hide title to avoid overlap (#5099) (44b9527)
- ssr: make computed inactive during ssr, fix memory leak (f4f0966), closes #5208
- ssr: remove missing ssr directive transform error (55cc4af)
- types/tsx: allow ref_for type on tsx elements (78df8c7)
- types: fix shallowReadonly type (92f11d6)
- types: handle ToRef (5ac7030), closes #5188
- types: KeepAlive match pattern should allow mixed array (3007d5b)
Features
Performance Improvements
- improve memory usage for static vnodes (ed9eb62)
v3.2.26
v3.2.25
Bug Fixes
- compiler-sfc: generate valid TS in script and script setup co-usage with TS (7e4f0a8), closes #5094
- compiler: force block for custom dirs and inline beforeUpdate hooks (1c9a481)
- runtime-core: disallow recurse in vnode/directive beforeUpdate hooks (a1167c5)
Features
- compiler-core: support aliasing vue: prefixed events to inline vnode hooks (4b0ca87)
- experimental: allow const for ref sugar declarations (9823bd9)
- reactivity-transform/types: restructure macro types + export types for all shorthand methods (db729ce)
- reactivity-transform: $$() escape for destructured prop bindings (198ca14)
- reactivity-transform: rename @vue/ref-transform to @vue/reactivity-transform (d70fd8d)
- reactivity-transform: support $-shorthands for all ref-creating APIs (179fc05)
- reactivity-transform: support optionally importing macros (fbd0fe9)
- reactivity-transform: use toRef() for $() destructure codegen (93ba6b9)
- reactivity: support default value in toRef() (2db9c90)
- sfc-playground: add github link (#5067) (9ac0dde)
- sfc-playground: prevent ctrl+s default behavior (#5066) (b027507)
- support ref in v-for, remove compat deprecation warnings (41c18ef)
v3.2.24
Bug Fixes
- compat: maintain compatConfig option in legacy functional comp (#4974) (ee97cf5)
- compiler-dom: avoid bailing stringification on setup const bindings (29beda7)
- compiler-sfc: make asset url imports stringifiable (87c73e9)
- package: ensure ref-macros export is recognized by vue-tsc (#5003) (f855269)
- runtime-core: handle initial undefined attrs (#5017) (6d887aa), closes #5016
- types/reactivity: export ShallowRef type (#5026) (523b4b7), closes #5205
Features
v3.2.23
Bug Fixes
- reactivity: retain readonly proxies when setting as reactive property (d145128), closes #4986
- runtime-core: fix component public instance has check for accessed non-existent properties (aac0466), closes #4962
- runtime-core: handle error in async KeepAlive hooks (#4978) (820a143)
- runtime-dom: fix option element value patching edge case (#4959) (89b2f92), closes #4956
- runtime-dom: patchDOMProps should not set _value if element is custom element (#4839) (1701bf3)
- types: export ref-macros.d.ts (1245709)
- types: fix propType type inference (#4985) (3c449cd), closes #4983
-
types: scrip-setup+ts: ensure proper handling of
null
as default prop value. (#4979) (f2d2d7b), closes #4868
Features
- compiler-sfc: export resolveTemplateUsageCheckString for HMR plugin use (#4908) (c61baac)
- compiler-sfc: expose properties for more accurate HMR (68c45e7), closes #4358 #4908
v3.2.22
Bug Fixes
- compiler-sfc: add type for props include Function in prod mode (#4938) (9c42a1e)
- compiler-sfc: add type for props's properties in prod mode (#4790) (090df08), closes #4783
- compiler-sfc: externalRE support automatic http/https prefix url pattern (#4922) (574070f), closes #4920
- compiler-sfc: fix expose codegen edge case (#4919) (31fd590), closes #4917
- devtool: improve devtools late injection browser env detection (#4890) (fa2237f)
- runtime-core: improve dedupe listeners when attr fallthrough (#4912) (b4eb7e3), closes #4859
- types/sfc: fix withDefaults type inference when using union types (#4925) (04e5835)
v3.2.21
Bug Fixes
- custom-element: fix custom element props access on initial render (4b7f76e), closes #4792
- custom-element: fix initial attr type casting for programmtically created elements (3ca8317), closes #4772
- devtools: avoid open handle in non-browser env (6916d72), closes #4815
- devtools: fix memory leak when devtools is not installed (#4833) (6b32f0d), closes #4829
-
runtime-core: add
v-memo
to built-in directives check (#4787) (5eb7263) - runtime-dom: fix behavior regression for v-show + style display binding (3f38d59), closes #4768
- types: fix ref unwrapping type inference for nested shallowReactive & shallowRef (20a3615), closes #4771
v3.2.20
Bug Fixes
- compiler-sfc: fix props codegen w/ leading import (d4c04e9), closes #4764
- compiler-sfc: support runtime Enum in normal script (#4698) (f66d456)
- devtools: clear devtools buffer after timeout (f4639e0), closes #4738
- hmr: fix hmr for components with no active instance yet (9e3d773), closes #4757
- types: ensure that DeepReadonly handles Ref type properly (#4714) (ed0071a)
-
types: make
toRef
return correct type(fix #4732) (#4734) (925bc34)
Features
v3.2.19
Bug Fixes
- compiler-core: should treat attribute key as expression (#4658) (7aa0ea0)
- server-renderer: respect compilerOptions during runtime template compilation (#4631) (50d9d34)
v3.2.18
v3.2.17
Bug Fixes
- build: avoid importing @babel/parser in esm-bundler build (fc85ad2), closes #4665
v3.2.16
Bug Fixes
- ssr: fix ssr runtime helper import in module mode (8e05b7f)
v3.2.15
Bug Fixes
- compiler-ssr: import ssr helpers from updated path (d74f21a)
v3.2.14
Bug Fixes
- compiler-core: generate TS-cast safe assignment code for v-model (686d014), closes #4655
- compiler-core: more robust member expression check in Node (6257ade)
- compiler-sfc: fix local var access check for bindings in normal script (6d6cc90), closes #4644
- devtools: fix prod devtools detection + handle late devtools hook injection (#4653) (2476eaa)
v3.2.13
Bug Fixes
- compiler-core: add check when v-else-if is behind v-else (#4603) (5addef8)
- compiler-core: dedupe renderSlot's default props (#4557) (0448125)
- compiler-core: ensure hoisted scopeId code can be treeshaken (cb2d7c0)
- compiler-core: more robust member expression check when running in node (d23fde3), closes #4640
- compiler-core: only merge true handlers (#4577) (d8a36d0)
- compiler-core: support ts syntax in expressions when isTS is true (0dc521b)
- compiler-dom: fix transition children check for whitespace nodes (ed6470c), closes #4637
- hydration: ensure hydrated event listeners have bound instance (#4529) (58b1fa5), closes #4479
- runtime-core: return the exposeProxy from mount (#4606) (5aa4255)
- types: incorrect type inference of array (#4578) (140f089)
- watch: remove redundant parameter default value (#4565) (11a2098)
Features
- compiler-sfc: allow disabling sourcemap when not needed (585615b)
v3.2.12
Bug Fixes
- compile-sfc: add symbol judge in prop type checks. (#4594) (fcd5422), closes #4592
- compiler-core: v-on inline async function expression handler (#4569) (fc968d6), closes #4568
- compiler-sfc: fix TLA codegen semicolon insertion (39cebf5), closes #4596
- compiler-sfc: handle empty strings during template usage analysis of setup bindings (#4608) (bdb1a79), closes #4599
- compiler-sfc: properly analyze destructured bindings with dynamic keys (a6e5f82), closes #4540
- compiler-sfc: properly reuse hoisted asset imports (06c5bf5), closes #4581
- compiler-sfc: register exported bindings in normal script when using script setup (#4601) (8055445), closes #4600
- compiler-sfc: support nested await statements (#4458) (ae942cd), closes #4448
- compiler-ssr: handle v-memo in ssr compilation (dd9a276)
- compiler: fix template ref codegen for setup-maybe-ref binding types (#4549) (f29d061), closes #4546
- custom-elements: fix number prop casting (0cfa211), closes #4370 #4393
- runtime-core: avoid script setup bindings overwriting reserved ctx properties (#4570) (14fcced)
- suspense: fix suspense slot inside deoptimized slot call (141a5e1), closes #4556
v3.2.11
Bug Fixes
- hmr: handle possible duplicate component definitions with same id (aa8908a)
v3.2.10
Bug Fixes
- build: build vue-compat in default exports mode (#4460) (7575733)
- compiler-core: avoid runtime dependency on @babel/types (1045590), closes #4531
- compiler-core: pick last char when dynamic directive doesn't close (#4507) (5d262e0)
- compiler: condense whitespaces in static class attributes (#4432) (b8653d3), closes #4251
- runtime-dom: style patching shoud always preserve v-show display property (d534515), closes #4424
- type: fix prop type infer (#4530) (4178d5d), closes #4525
v3.2.9
Bug Fixes
- compile-sfc: generate setup prop type format error (#4506) (e6fe751), closes #4505
-
compile-sfc: support
Date
prop type with defineProps (#4519) (fac9a29) - compiler-sfc: fix script setup ref assignment codegen edge case (#4520) (5594643), closes #4514
- compiler-sfc: support using declared interface in normal script with defineProps() (#4522) (14d6518), closes #4423
- ref-transform: not transform the prototype attributes. (#4503) (0178f4e), closes #4502
- types/ref-transform: fix $$() type (5852cc8)
- types: fix ref macro types (815bfcf), closes #4499
v3.2.8
Bug Fixes
- compiler-sfc: ensure script setup generates type-valid ts output (bacb201), closes #4455
- compiler-sfc: generate matching prop types when withDefaults is used (#4466) (8580796), closes #4455
- compiler: generate function ref for script setup if inline is ture. (#4492) (4cd282b)
- compiler: report invalid directive name error (#4494) (#4495) (c00925e)
- types: include ref-macros.d.ts in npm dist files (d7f1b77), closes #4433
v3.2.7
Bug Fixes
- compiler-core: remove no longer necessary withScopeId import in generated code (935b4e2)
- compiler-sfc: ensure script setup lang=ts output is tree-shakable (b89ff92)
- compiler: only generate non-static ref for script setup if the binding exists (3628991), closes #4431
- ref-transform: should transform $ref when used with generic arguments (#4446) (33cf6c8), closes #4442
- runtime-core: properly merge unmounted and beforeUnmount options (#4447) (741d3b3)
- suspense: misusing DOM Comment element constructor as a vnode type (#4451) (ef5b731)
v3.2.6
Bug Fixes
- build: avoid imports to @babel/types in client build of compiler-core (4c468eb)
v3.2.5
Bug Fixes
- compiler-core: fix duplicated component identifier for names with non-ascii chars (#4429) (3282750), closes #4422
- compiler-sfc: fix 'export default' rewrite with extra whitespaces (#4375) (4792ebd)
-
compiler-sfc: fix
<script>
and<script setup>
co-usage ordering edge case (#4419) (9826382), closes #4395 #4376 -
compiler-sfc: should also expose regular script block bindings when
<script setup>
is used (872b3f7), closes #4369 - types: improve the type of createElementBlock (#4406) (ebd0bac), closes #4391
Features
- experimental: expose ref macro types using separate d.ts file (b408451)
- experimental: shouldTransform for ref-transform (e565831)
- experimental: standalone ref transform (db8dc75)
-
experimental: support ref transform for sfc normal
<script>
(06051c4) - ref-transform: auto infer parser plugins (6453359)
v3.2.4
Bug Fixes
- compiler/v-model: catch incorrect v-model usage on prop bindings (001184e), closes #5584
- custom-elements: also dispatch hyphenated version of emitted events (#5378) (0b39e46), closes #5373
- custom-elements: custom element should re-instantiate when inserted again (#6966) (67890da), closes #6934
- custom-elements: define declared properties in constructor (#5328) (55382ae)
- custom-elements: ensure custom elements can inherit provides from ancestors (#5098) (192dcb6), closes #5096
- custom-elements: fix event emitting for async custom elements (#5601) (665f2ae), closes #5599
- custom-elements: fix number type props casting check (89f37ce), closes #5793 #5794
- custom-elements: properties set pre-upgrade should not show up in $attrs (afe8899)
- custom-elements: respect slot props in custom element mode (ffef822)
- custom-elements: should not reflect non-decalred properties set before upgrade (5e50909)
- hmr/keep-alive: fix error in reload component (#7049) (a54bff2), closes #7042
- runtime-core: fix move/removal of static fragments containing text nodes (#6858) (4049ffc), closes #6852
- sfc: also generate getter for import bindings during dev (0594400)
-
sfc: ensure
<script setup>
binding behavior consistency onthis
between prod and dev (f73925d), closes #6248 -
sfc: ensure consistent dev/prod behavior for non-reactive variables declared in
<script setup>
(5a3d45a), closes #5655 - teleport/css-v-bind: fix css v-bind for teleported content (42239cf), closes #4605 #4609
- teleport/css-v-bind: fix css v-bind in teleport in child component slot (11214ee)
- v-model: fix incorrect codegen for non-ref bindings (15e889a), closes #6241
v3.2.3
Bug Fixes
- runtime-core: avoid double firing when mounting inside a watcher callback (6aaf8ef), closes #6614
- runtime-core: support extends template for runtime compiler (#6250) (9875ecd), closes #6249
- ssr: reset current instance (#6184) (6493da5), closes #6110
- types: support TypeScript 4.8 (5381abc), closes #6554
v3.2.2
Bug Fixes
- compiler-sfc: fix css v-bind inside other css functions (16fa18d), closes #5302 #5306
- reactivity: ensure readonly refs can be replaced with new refs in reactive objects (#5310) (4be1037), closes #5307
- runtime-dom: fix static content re-insertion (9aa5dfd), closes #5308
v3.2.1
Bug Fixes
- compiler-core: should treat attribute key as expression (#4658) (7aa0ea0)
- server-renderer: respect compilerOptions during runtime template compilation (#4631) (50d9d34)
v3.2.0
Compatibility Notes
This release contains no public API breakage. However, there are a few compatibility related notes:
-
Due to usage of new runtime helpers, code generated by the template compiler in >= 3.2 will not be compatible with runtime < 3.2.
This only affects cases where there is a version mismatch between the compiler and the runtime. The most common case is libraries that ship pre-compiled Vue components. If you are a library author and ship code pre-compiled by Vue >= 3.2, your library will be only compatible Vue >= 3.2.
-
This release ships TypeScript typings that rely on Template Literal Types and requires TS >= 4.1.
Features
SFC
- remove experimental status of
<script setup>
(27104ea) (Docs) (RFC) - remove experimental status for sfc
<style>
v-bind (3b38c9a) (Docs) (RFC) - support non-explicit type imports in
<script setup>
by avoiding exposing unused imports to template during dev (5a3ccfd), closes #3183 - support namespaced component tags when using
<script setup>
(e5a4412) - (experimental) new ref sugar (562bddb) (RFC)
Custom Elements
Reactivity
- new
effectScope
API (#2195) (f5617fc) (RFC) - support
onTrack/onTrigger
debug options forcomputed
(5cea9a1)
SSR
- server-renderer: decouple esm build from Node + improve stream API (0867222), closes #3467 #3111 #3460 (Docs)
Generic
- New
v-memo
directive (3b64508) (Docs) - support
v-bind
.prop & .attr modifiers (1c7d737) (Docs) - add
watchPostEffect
API (42ace95) (Docs) - add
watchSyncEffect
API (d87d059) (Docs) - unwrap refs in toDisplayString (f994b97)
- allow
compilerOptions.comments
to affect comment inclusion in dev (#4115) (dd0f9d1), closes #3392 #3395
Types
Performance Improvements
- reactivity: improve reactive effect memory usage (#4001) (87f69fd), closes #2345
- reactivity: ref-specific track/trigger and miscellaneous optimizations (#3995) (6431040)
- reactivity: use bitwise dep markers to optimize re-tracking (#4017) (6cf2377)
- compiler-core/runtime-core: improve VNode creation performance with compiler hints (#3334) (ceff899)
- compiler-core: also hoist all-static children array (b7ea7c1)
- compiler-core: hoist dynamic props lists (02339b6)
- compiler-sfc: ignore empty blocks (#3520) (b771fdb)
Bug Fixes
Please refer to changelogs of previous beta releases for bug fixes included in this release.
v3.1.5
Bug Fixes
- compat: fix props check for v-model compat warning (#4056) (f3e15f6)
- compat: fix v3 compiled fn detection in production (8dbad83)
- compiler: Addressed infinite loop in compiler (#3992) (e00aa56), closes #3987
- compiler-core: fix forwarded slots detection on template slots (#4124) (c23153d), closes #4123
- compiler-sfc: duplicated injected css var with repeated vars in style (#2802) (2901050)
- compiler-sfc: should not rewrite ref sugar identifiers in types (6fad209), closes #4062
- reactivity: call array subclass methods (#3624) (1cfe290), closes #2314 #2315
- ref: should not trigger when setting value to same proxy (#3658) (08f504c)
- runtime-core: enter optimized mode for component as root (68365b9), closes #3943
- runtime-dom: capture errors when setting value for IDL (#3578) (3756270), closes #3576
- runtime-dom: remove class attribute on nullish values (7013e8f), closes #3173
-
sfc: fix
<script setup>
async context preservation logic (03e2684), closes #4050 - sfc: fix style variables injection on static vnode (#3847) (6a0c7cd), closes #3841
- sfc: only enable jsx parser plugin when explicitly using tsx (5df7dfc), closes #4106
-
type: infer parent as
this
onnextTick
function (#3608) (18911ab), closes #3599 - v-model: handle mutations of v-model bound array/sets (2937530), closes #4096
- v-model: support calling methods in v-model expression (5af718b), closes #3993
- v-on: proper member exp detection for bracket assignment (395572b), closes #4097
- v-on: properly detect member expressions with optional chaining (963085d), closes #4107
v3.1.4
Bug Fixes
- build: avoid using async/await syntax (438754a)
- build: fix generated code containing unprocessed class field syntax (2788154), closes #4052 vuejs/vue-cli#6562
- codegen: ensure valid types in genreated code when using global directives (a44d528), closes #4054
- compiler-sfc: fix parse-only mode when there is no script setup block (253ca27)
- runtime-core: add useAttrs and useSlots export (#4053) (735ada1)
- runtime-core: fix instance accessed via $parent chain when using expose() (#4048) (12cf9f4)
v3.1.3
Bug Fixes
- compiler-core: properly exit self-closing pre tag (d2df28d), closes #4030
- compiler-sfc: avoid script setup marker showing up in devtools (211793d)
- compiler-sfc: fix defineProps() call on imported identifier (691d354)
- compiler-sfc: fix defineProps/defineEmits usage in multi-variable declarations (62c1b2f), closes #3739
- compiler-sfc: fix script setup hidden flag codegen (a5a66c5)
- compiler-sfc: support method signature in defineProps (afdd2f2), closes #2983
-
compiler-sfc: support TS runtime enum in
<script setup>
(1ffd48a) - runtime-core: add missing serverPrefetch hook error string (#4014) (d069796)
- runtime-core: fix mouting of detached static vnode (fded1e8), closes #4023
- runtime-dom: fix static node content caching edge cases (ba89ca9), closes #4023 #4031 #4037
-
sfc: allow variables that start with _ or $ in
<script setup>
(0b8b576) - ssr: ensure behavior consistency between prod/dev when mounting SSR app to empty containers (33708e8), closes #4034
- ssr: properly hydrate non-string value bindings (34d4991), closes #4006
- types: improve type of unref() (127ed1b), closes #3954
- defineExpose type definition and runtime warning (1675b6d)
- prevent withAsyncContext currentInstance leak in edge cases (9ee41e1)
Features
- compiler-sfc: compileScript parseOnly mode (601a290)
- expose: always expose $ instance properties on child refs (b0203a3)
-
sfc: add
defineEmits
and deprecatedefineEmit
(#3725) (a137da8) - sfc: auto restore current instance after await statements in async setup() (0240e82)
-
sfc: change
<script setup>
directive resolution to require v prefix (d35e0b1), closes #3543 - sfc: defineExpose (be2b1d3)
- sfc: make ref sugar disabled by default (96cc335)
-
sfc: remove
<template inherit-attrs>
support (6f6f0cf) - sfc: support referenced types for defineEmits (2973b6c)
- sfc: support using declared interface or type alias with defineProps() (2f91db3)
- sfc: useAttrs + useSlots (63e9e2e)
- sfc: withDefaults helper (4c5844a)
- sfc-playground: support lang=ts (be0f614)
-
sfc/types: make
<script setup>
helper types available globally (004bd18) - types: support IDE renaming for props (#3656) (81e69b2)
- types/ide: support find definition for jsx tags, events (#3570) (8ed3ed6)
v3.1.2
Bug Fixes
- compiler-core: improve member expression check (bc100c5), closes #3910
- compiler-core/compat: fix is prop usage on components (08e9322), closes #3934
- compiler-sfc: rewriteDefault support multiline (#3917) (b228abb)
- compiler-ssr: fix attr fallthrough for transition/keep-alive as template root (9f6f8b3), closes #3981
- devtools: expose root instance (2b52d5d)
- runtime-core: bind default function of inject to instance (#3925) (db1dc1c), closes #3923
- runtime-core: fix multiple .once event handlers on same component (#3904) (011dee8), closes #3902
- Suspense: emit initial fallback and pending events (#3965) (ab6e927), closes #3964
- Suspense: fallback should work with transition (#3968) (43e2a72), closes #3963
- watch: fix watch option merging from mixins (9b607fe), closes #3966
Performance Improvements
v3.1.1
Bug Fixes
v3.1.0
Features
- Migration Build
- compiler-core: whitespace handling strategy (dee3d6a)
- support component-level
compilerOptions
when using runtime compiler (ce0bbe0) -
config: support configuring runtime compiler via
app.config.compilerOptions
(091e6d6) - support casting plain element to component via is="vue:xxx" (af9e699)
- devtools: improved KeepAlive support (03ae300)
- devtools: performance events (f7c54ca)
- onServerPrefetch (#3070) (349eb0f)
Performance Improvements
- only trigger
$attrs
update when it has actually changed (5566d39) - compiler: skip unncessary checks when parsing end tag (048ac29)
- avoid deopt for props/emits normalization when global mixins are used (51d2be2)
Deprecations
-
app.config.isCustomElement
has been deprecated and should be now nested underapp.config.compilerOptions
. [Docs] -
delimiters
component option has been deprecated and should now be nested under thecompilerOptions
component option. [Docs] -
v-is
has been deprecated in favor ofis="vue:xxx"
[Docs]
Minor Breaking Changes
-
this.$props
and theprops
object passed tosetup()
now always contain all the keys for declared props, even for props that are absent (4fe4de0). This has always been the behavior in Vue 2 and is therefore considered a fix (see reasoning in #3288). However, this could break Vue 3 code that relied on the keys for prop absence checks. The workaround is to use a Symbol default value for props that need absence checks:const isAbsent = Symbol() export default { props: { foo: { default: isAbsent } }, setup(props) { if (props.foo === isAbsent) { // foo is absent } } }
-
optionMergeStrategies
functions no longer receive the component instance as the 3rd argument. The argument was technically internal in Vue 2 and only used for generating warnings, and should not be needed in userland code. This removal enables much more efficient caching of option merging.
Bug Fixes
- compat: revert private properties on $options in comapt mode (ad844cf), closes #3883
- runtime-core: fix fragment update inside de-opt slots (5bce2ae), closes #3881
- compat: fix deep data merge with extended constructor (c7efb96), closes #3852
- compiler-sfc: fix style injection when using normal script + setup (8b94464), closes #3688
- compiler-sfc: fix template expression assignment codegen for script setup let refs (#3626) (2c7bd42), closes #3625
- runtime-core: align option merge behavior with Vue 2 (e2ca67b), closes #3566 #2791
- runtime-dom/v-model: only set selectedIndex when the value changes (#3845) (ecd97ee)
- suspense: fix suspense regression for errored template component (44996d1), closes #3857
- watch: avoid traversing objects that are marked non-reactive (9acc9a1)
- compiler-core: improve the isMemberExpression function (#3675) (9b2e894)
- compiler-dom: fix in-browser attribute value decoding w/ html tags (6690372), closes #3001
- compiler-sfc: correctly remove parens used for wrapping (#3582) (6bfb50a), closes #3581
- reactivity: ensure computed always expose value (03a7a73), closes #3099 #910
- runtime-core: fix cases of reused children arrays in render functions (#3670) (a641eb2), closes #3666
- runtime-core: fix resolving inheritAttrs from mixins (#3742) (d6607c9), closes #3741
- runtime-core: should disable tracking inside directive lifecycle hooks (#3699) (ff50e8d)
- runtime-core: stricter compat root mount check (32e2133)
-
runtime-dom: should remove attribute when binding
null
tovalue
(#3564) (e3f5dcb) - suspense: fix suspense patching in optimized mode (9f24195), closes #3828
- transition: fix higher order transition components with merged listeners (071986a), closes #3227
- keep-alive: include/exclude should work with async component (#3531) (9e3708c), closes #3529
- runtime-core: properly check forwarded slots type (#3781) (e8ddf86), closes #3779
- runtime-core: should not track dynamic children when the user calls a compiled slot inside template expression (#3554) (2010607), closes #3548 #3569
- runtime-core/teleport: ensure the nested teleport can be unmounted correctly (#3629) (4e3f82f), closes #3623
- scheduler: handle preFlush cb queued inside postFlush cb (b57e995), closes #3806
- ssr: handle hydrated async component unmounted before resolve (b46a4dc), closes #3787
- watch: should not leak this context to setup watch getters (1526f94), closes #3603
- compat: avoid accidentally delete the modelValue prop (#3772) (4f17be7)
- compat: enum coercion warning (#3755) (f01aadf)
- compiler-core: fix whitespace management for slots with whitespace: 'preserve' (#3767) (47da921), closes #3766
- compiler-dom: comments in the v-if branchs should be ignored when used in Transition (#3622) (7c74feb), closes #3619
- compiler-sfc: support tsx in setup script (#3825) (01e8ba8), closes #3808
- compiler-ssr: disable hoisting in compiler-ssr (3ef1fcc), closes #3536
- devtools: send update to component owning the slot (1355ee2)
- runtime-core: avoid double-setting props when casting (0255be2), closes #3371 #3384
- runtime-core: avoid the proxy object polluting the slots of the internal instance (#3698) (4ce0df6), closes #3695
-
types: declared prop keys should always exist in
props
argument (#3726) (9b160b9) -
types/reactivity: error TS4058 caused by
RefSymbol
(#2548) (90aa835) - compat: correctly merge lifecycle hooks when using Vue.extend (#3762) (2bfb8b5), closes #3761
- compiler-core: bail out to array children when the element has custom directives + only one text child node (#3757) (a56ab14)
- compat: handle and warn config.optionMergeStrategies (94e69fd)
- compiler-core: preserve comment content in production when comments option is enabled (e486254)
- hmr: don't remove __file key from component type (9db3cbb)
- hydration: fix update before async component is hydrated (#3563) (c8d9683), closes #3560
- reactivity: fix tracking for readonly + reactive Map (#3604) (5036c51), closes #3602
- runtime-core: ensure declare prop keys are always present (4fe4de0), closes #3288
- runtime-core: watching multiple sources: computed (#3066) (e7300eb), closes #3068
- Teleport: avoid changing the reference of vnode.dynamicChildren (#3642) (43f7815), closes #3641
- watch: avoid traversing non-plain objects (62b8f4a)
- watch: this.$watch should support watching keypath (870f2a7)
v3.0.11
Bug Fixes
-
compiler-sfc: fix wrong scopeId for nested
<script setup>
components (7f7dcc9) - runtime-core: fix render function + optimized slot edge case (#3523) (995d76b), closes #2893
- runtime-core: fix v-on object kebab-case event emit matching (c1cd42e), closes #3527
v3.0.10
Bug Fixes
- compiler-core: allow PascalCase dynamic component tag usage (#3508) (555b016), closes #3507
- compiler-core: properly transform replaced nodes (#2927) (0fe567a)
- compiler-sfc: do not resolve assets from setup bindings (f5827fd), closes #3270 #3275
- compiler-sfc: fix function scope variable declaration marking (69b4727)
- compiler-sfc: fix missing whitespace issue in srcsets (#3132) (42b68c7), closes #3069
- compiler-sfc: support proper type arguments for defineEmit helper (bb8cdca), closes #2874
- reactivity: should not trigger when setting value to same proxy (#2904) (c61e767)
- runtime-core: avoid unmount teleport's children multiple times (#3499) (3736496), closes #3497
- runtime-core: fix dev fragment root flag check (9cf7525)
- runtime-dom: fix event listeners call in firefox <= 53 (#3501) (33ba0e3), closes #3485
- ssr: fix scopeId inheritance across mixed parent chain (5e54081), closes #3513
- types: add a type-only differentiator to assist Mixin's type infer (#3481) (5db2b14), closes #3468
- types/tsx: make JSX.Element extend VNode (#3171) (4f26835)
Performance Improvements
- compiler-sfc: skip srcset transform if all candidates are external (b39208c)
- runtime-core: optimize the performance of getTypeIndex (#3206) (2e50acf)
v3.0.9
Bug Fixes
- compiler-core: fix slot source location (#3494) (e752bdd)
- runtime-core: fix kebab-case prop required warning (2121c32), closes #3495 #3363
- runtime-core: remove dev-only props property from setup context for consistency (#3492) (4549e65)
- ensure backwards compat for pre-compiled sfc components (37c1709), closes #3493
v3.0.8
Bug Fixes
- compiler: properly bail stringfication for nested slot elements (f74b16c)
- compiler-core: allow unicode to appear in identifiers (#3443) (ebedccc), closes #3440
- compiler-core: avoid generating useless createVNode helper (#2938) (7715c49), closes #2739
- compiler-core: detect v-if branch root with comment as dev fragment (#2785) (4bf7ba1), closes #2780
- compiler-core: fix the detection of forwarded slots with v-if or v-for (#3353) (602b58e), closes #3347
- compiler-core: should not condense whitespace in RCDATA text mode (#3482) (b4b8215), closes #3479
-
compiler-dom: stringifyStatic should remove attribute bindings with
null
value (#3477) (ca6aa01), closes #3475 - compiler-sfc: scope Id should not be attached to @keyframe breakpoint rules (#3308) (6cb9475), closes #3304
- compiler-sfc: should not rewrite scope variable (#3449) (bbc5fe6), closes #3445
- compiler-ssr: keep the order of imports expression for the fallback branch of SSR (#3448) (49f4072), closes #3447
- component: prioritize registered component over implicit self-reference via filename (abd129d), closes #2827
- hydration: handle camel-case tag name when performing match assertion (#3247) (9036f88), closes #3243
- KeepAlive: adapt keepalive for ssr (#3259) (e8e9b00), closes #3255
- reactivity: ensure computed can be wrapped by readonly (41e02f0), closes #3376
- reactivity: ensure that shallow and normal proxies are tracked seperately (close #2843) (#2851) (22cc4a7)
- reactivity: fix shallow readonly behavior for collections (#3003) (68de9f4), closes #3007
- rumtime-core: custom dom props should be cloned when cloning a hoisted DOM (#3080) (5dbe834), closes #3072
- runtime-core: cache props default values to avoid unnecessary watcher trigger (#3474) (44166b4), closes #3471
- runtime-core: ensure only skip unflushed job (#3406) (bf34e33)
- runtime-core: fix async component ref handling (#3191) (7562e72), closes #3188
- runtime-core: fix erraneous emits warnings w/ mixins (60d777d), closes #2651
- runtime-core: fix warning for absent props (#3363) (86ceef4), closes #3362
- runtime-core: handle error in async setup (#2881) (d668d48)
- runtime-core: handle error in async watchEffect (#3129) (eb1fae6)
- runtime-core: should call chained mixins and extends (#3040) (b58bb16), closes #3038
- runtime-core: should not cache property access during data() invocation (#3299) (6e88156), closes #3297
- runtime-core: should not track deps in pre flush watcher callbacks (d5824b9), closes #2728
- runtime-core: the select tag's multiple prop should be set before the children mounting (#3202) (2451dd8), closes #3199
- runtime-dom: support mounting app to svg container (#2929) (8ffcde2), closes #2926
- ssr: ensure async setup error handling work with suspense during ssr (2e71f07)
- ssr: fix memory leak when vnode component render throws error (da944cb), closes #3100
- ssr: properly update currentRenderingInstance state during ssr (8c3c14a), closes #2863
- ssr: respect render function from extends/mixins in ssr (#3006) (0a583d5), closes #3004
- ssr: watchEffect onInvalidate runner initialization (#3323) (e4b5fcc), closes #3322
- ssr/hydration: handle ending empty text node (#3246) (420c8f4), closes #3245
- teleport: targetAnchor should also be removed when unmounted (#2870) (21d1288)
- Teleport: component with multi roots should be removed when unmounted (#3157) (7769513), closes #3156
- Teleport: fallback to non-optimized mode when HRM performing updates (#3311) (9cb21d0), closes #3302
- transition: toggling branches with in-out mode should be transitioned correctly (#3109) (67a0290), closes #3104
- types: allow style to be an array in JSX (#2947) (13c9d2c)
- types: union function prop (#3119) (3755e60), closes #3357
- types: unwrap refs on public instance data (#3319) (2b588cf), closes #3315
- types/jsx: llow tabindex to be a string (#3476) (e4a5712)
- add display name for suspense component (#3312) (3b3a9a1)
Performance Improvements
- support only attaching slot scope ids when necessary (02cbbb7)
v3.0.7
Bug Fixes
- compiler-sfc: handle more edge cases in default rewrite (1dedc19)
- deps: pin Rollup to 2.38 (34f354b), closes #3332
- runtime-core: properties in methods should be writable and enumerable in DEV (#3301) (e3568ba), closes #3300
- scheduler: ensure updates are always inserted in ascending id order (#3184) (45fae9d), closes #2768 #2829
- v-show: v-show takes higher priority than style attribute (#3230) (5ad4036), closes #2757
- init devtools after feature flag checks (d0ea745)
Performance Improvements
v3.0.6
Bug Fixes
- compiler-core: do not mark v-for as stable on const bindings (734c65b), closes vitejs/vite#1956
- compiler-dom: ensure global build filename matches the one defined in package.json (close #3181) (#3185) (96b6433)
- compiler-dom: fix cdn entries (fcb6c89), closes #3181 #3185
- compiler-sfc: compiler blank srcset (#3005) (9dc816d)
- compiler-sfc: removeSpecifier issue when removing initial imports (script-setup) (#2729) (6d762a8)
- compiler-sfc: the empty lang attribute should be treated as no lang specified (#3051) (6d5b623)
- compiler-sfc: transformAssetUrls.base should not affect known module requests (2ea9867)
- compiler-sfc: treat const reactive() bindings as mutable (03360ce)
- compiler-ssr: avoid duplicated asset imports merged from component slot client branch (c69f4ea), closes vitejs/vite#2034
- devtools: init devtools in production (#2906) (4d9bcb7)
- devtools: send instance to devtools when it's mounted instead of created (4fecb27)
- docs: change reference to passed deadline (#2930) (de7f9d1)
- hmr: deep clone reused hoisted trees during dev (5a7a1b8), closes vitejs/vite#2022
-
runtime-core: align
parent/
root with the template ref when using expose (#3158) (f43a3b0) - runtime-core: allow overriding properties other than props (#3105) (73117f6)
- runtime-core: check the DEV_ROOT_FRAGMENT flag correctly in the dev environment (#2750) (347a879)
- runtime-core: component methods should override global properties in DEV (#3074) (2587f36)
- runtime-core: ensure app instance can be garbage collected after unmount (close #2907) (#2909) (60e05ef)
-
runtime-core: instanceWatch should pass
this.proxy
to source as the first argument (#2753) (ec8fd10) - runtime-dom: ensure readonly type prop on textarea is handled patched as attribute (#2888) (c5d147c), closes #2766
- kebab-case events are attached correctly on web components, see #2841 (#2847) (b302cbb)
- types: extract the correct props type for the DateConstructor (#2676) (48f0d29)
- ensure all published packages contan a LICENCE file (close #2650) (#2857) (6a48d23)
- remove superfluous spaces when normalizing class (#3083) (4b55142)
- runtime-dom: enable set form attr to null on form-elements (#2840) (#2849) (f262438)
- toRef: ref created from union typed prop can't be used in watch (#3048) (4ca4666)
- should prefix
ShadowRoot
withwindow.
(#2943) (97d6f1a)
Features
- remove useless option in KeepAlive (#3170) (bd1240c)
-
compiler-core: support
BigInt
in template (#2900) (c9f94fa) - compiler-sfc: upgrade to postcss 8 (#2710) (49bc2e4)
- runtime-core: improve render context warning (#2496) (288ae0a)
-
runtime-core: props type support
BigInt
(#2891) (ffd5288)
Performance Improvements
v3.0.5
Note: this release contains a type-only change that requires TypeScript 4.0+, which may cause build issues in projects still using TS 3.x.
Bug Fixes
- compiler-core: fix missing createVNode import on nested v-for (ad4d391), closes #2718
- compiler-sfc: should keep template nodes with no content (#2468) (5b9b37f), closes #2463
- compiler-sfc: support transforming asset urls with full base url. (#2477) (db786b1)
- runtime-core: component mount anchor memory leak (#2459) (3867bb4), closes #2458
- runtime-core: skip patchBlockChildren if n1.dynamicChildren is null (#2717) (c59897c), closes #2715 #2485
- runtime-dom: support mounting app on ShadowRoot (#2447) (b2189ba), closes #2399
- ssr: properly handle ssr empty slot and fallback (88f6b33)
- transition: ensure manual style manipulation in transition leave hooks work (cbaa380), closes #2720
- transition: ensure styles from *-leave-active trigger transition (#2716) (3f8f9b6), closes #2712
Features
- devtools: send instance (3626ff0)
v3.0.4
Bug Fixes
- async-component: forward refs on async component wrapper (64d4681), closes #2671
- attr-fallthrough: ensure consistent attr fallthrough for root fragments with comments (3bc2914), closes #2549
- build: enable safari10 option for terser (#2472) (20a704f), closes #2470
- compiler-core: fix scope var reference check for v-on expressions (9db7095), closes #2564
- compiler-core: fix unintended imports in esm-bundler builds (55d99d7), closes #2258 #2515
- compiler-core: transform kebab case props to camelcase on slots (#2490) (ef59a30), closes #2488
- compiler-core/v-on: handle falsy values when caching v-on handlers (e4f09c1), closes #2605
-
compiler-sfc: fix parsing error when
lang=""
is used on plain element (#2569) (5f2a853), closes #2566 - compiler-sfc: named imports from .vue file should not be treated as constant (085bbd5), closes #2699
- compiler-sfc: should not remove import statements with no specifier when compiling script setup (43eab92)
- compiler-ssr: generate correct children for transition-group (a5d6f80), closes #2510
- compiler-ssr: handle v-model checkbox with true-value binding (fe5428d)
- compiler-ssr: should not render key/ref bindings in ssr (5b62662)
- provide: support symbols in applyOptions (#2616) (7a1a782), closes #2615
- reactivity: ensure readonly on plain arrays doesn't track array methods. (#2506) (3470308), closes #2493
- reactivity: ensure add/set on reactive collections return the proxy (#2534) (6e46a57), closes #2530
- runtime-core: ensure keep-alive deep-watches include/explude props (#2551) (421205d), closes #2550
- runtime-core: ensure watchers are always registered to correct instance owner (#2495) (735af1c), closes #2381
- runtime-core: fix emit listener check on kebab-case events (#2542) (3532b2b), closes #2540
- runtime-core: handle static node move in production (bf16a57)
- runtime-core: remove static node in production mode (#2556) (2a9ba0c), closes #2553
- runtime-core: should pause tracking when initializing legacy options (#2524) (0ff2a4f), closes #2521
- runtime-core: skip functional components in public $parent chain traversal (53f4885), closes #2437
- runtime-dom: attribute should be removed with nullish values (#2679) (fb6b9f8), closes #2677
- script-setup: ensure useContext() return valid context (73cdb9d)
- slots: dynamically named slots should be keyed by name (2ab8c41), closes #2535
- slots: should render fallback content when slot content contains no valid nodes (#2485) (ce4915d), closes #2347 #2461
- suspense: fix nested async child toggle inside already resovled suspense (cf7f1db), closes #2215
- teleport: Teleport into SVG elements (#2648) (cd92836), closes #2652
- transition: avoid invoking stale transition end callbacks (eaf8a67), closes #2482
- transition: respect rules in *-leave-from transition class (#2597) (e2618a6), closes #2593
- types: fix ToRefs type on union value types (e315d84), closes #2687
- v-model: avoid mutation when using Set models + fix multi select Set model update (f2b0a8e)
- v-model: respect checkbox true-value/false-value on initial render (48f00c0), closes #2694
- v-show: ensure v-show conflict with inline string style binding (3cd30c5), closes #2583
- allow hmr in all builds (46d80f4), closes #2571
Features
- sfc: allow sfcs to recursively self-reference in template via name inferred from filename (67d1aac)
v3.0.3
Bug Fixes
- compiler-core/compiler-sfc: handle destructure assignment expressions (4c6078c)
- compiler-sfc: fix script setup ts helpers (6e3abc8)
- hmr: fix updates for imported but not yet rendered components (9c23ddf)
- runtime-core: components with static props and slots should not be force updated (51e43e0)
- runtime-core: ensure scheduler queue is always non-null (#2567) (af95604)
- runtime-dom: use correct import source (f28ca55)
- style-vars: apply css vars in post flush effect (3a6b120)
- handle case of ref declaration without initial value (8485cd4)
- types: ensure correct type for toRef and toRefs on existing refs (8e20375)
Experimental Features
Note: support for experimental features in SFCs have been updated according to changes in ongoing RFCs. This release may break existing usage of such experimental features.
- compiler-sfc: compileScript inline render function mode (886ed76)
- compiler-sfc: new script setup implementation (556560f)
- compiler-sfc: new SFC css varaible injection implementation (41bb7fa)
-
compiler-sfc: support kebab-case components in
<script setup>
sfc template (3f99e23) - runtime-core: explicit expose API (0e59770)
Reverts
- Revert "wip: allow scriptCompiled to be cached on sfc descriptor" (9db4288)
v3.0.2
Bug Fixes
- compiler: stringify values on v-text (#2432) (314ab2c), closes #2430
- compiler-core: fix multiline member expression check (#2436) (6d2a1cb), closes #2426
- reactivity: track length on for in iteration on Array (0e5a3c4), closes #2427
- runtime-core: avoid mutating EMPTY_ARR when setting dev root (#2419) (edd49dc), closes #2413
- runtime-core: avoid object prototype keys in property access cache (#2416) (ba881f9)
- runtime-core: fix component .once listener logic (4bbb2b2)
- runtime-core: non-stable Fragment should always unmount its children (#2445) (fff62e2), closes #2444
- runtime-core: prevent self-injection (#2424) (111d04f), closes #2400
- suspense: fix suspense nested child updates in template mode (0227b4a), closes #2214
- types: h support for resolveComponent (#2402) (1f2a652), closes #2357
- v-model: built in modifiers support on component (#2348) (128ec46), closes #2326
Features
v3.0.1
Bug Fixes
-
compiler-sfc: fix wrong scopeId for nested
<script setup>
components (7f7dcc9) - runtime-core: fix render function + optimized slot edge case (#3523) (995d76b), closes #2893
- runtime-core: fix v-on object kebab-case event emit matching (c1cd42e), closes #3527
v3.0.0
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.