core/changelogs/CHANGELOG-3.2.md

119 KiB

3.2.47 (2023-02-02)

Bug Fixes

  • build: enforce __esModule interop for cjs builds (4b70366)

3.2.46 (2023-02-02)

Bug Fixes

  • build: ensure cjs re-exports can be properly detected when imported from esm (fb6ff3e)
  • build: ensure type exports is first (957722c)
  • build: fix cjs re-exports check for compat build (ce064a1)
  • compat: fix custom transition classes in compat mode (#7435) (efe2efd), closes #6253
  • compiler-core: typeof should be allowed in browser expression validation (#7037) (3783866)
  • compiler-sfc: allow declaring variables after defineProps (#7461) (686c829)
  • compiler-sfc: always generate runtime prop type for Function (#7112) (584eae6), closes #7111
  • compiler-sfc: support resolving type declaration from normal script (#5831) (30399d4), closes #5830
  • compiler: add hgroup to supported HTML_TAGS (#6321) (7443174), closes #6313
  • custom-elements: use strict number casting (7d0c63f), closes #4946 #2598 #2604
  • customElement: customElement can emit event (#7296) (c6e5bda)
  • reactivity-transform: fix escape edge cases (e06d3b6), closes #6312 #6944
  • reactivity-transform: prohibit const assignment at compile time (#6993) (3427052), closes #6992
  • reactivity: triggerRef working with toRef from reactive (#7507) (e64c9ae)
  • reactivity: ensure watch(Effect) can run independent of unmounted instance if created in a detatched effectScope (fix #7319) (#7330) (cd7c887)
  • reactivity: track hasOwnProperty (588bd44), closes #2619 #2621
  • runtime-core: ensure prop type validation warning shows custom class names (#7198) (620327d)
  • runtime-core: fix keep-alive cache prune logic on vnodes with same type but different keys (#7510) (1fde49c), closes #7355
  • runtime-core: set scope id before props (#6948) (da2ced1), closes #6923
  • runtime-dom: style update error when component use shorthand properties (#7425) (b7cfa6f)
  • shared: feDistanceLight changed to feDistantLight (#7540) (bef85e7)
  • shared: toNumber should only coerce strings (b55846f)
  • types/effectScope: re-expose active as readonly property (#6187) (59ffe5e), closes #6186
  • types: accept sync serverPrefetch() (#7000) (5f1883e)
  • types: add or update referrerpolicy (#7199) (1fa3d95)
  • types: allow assigning wider SetupContext type (#2818) (eb2a832), closes #2362
  • types: optional boolean props should have boolean type in return type of defineProps (#7619) (a0a010d), closes #7116 #5847 #7487
  • v-model: ensure v-model listener casing is consistent with manual v-on listener (#7067) (87c72ae), closes #7066

3.2.45 (2022-11-11)

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 on this 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

3.2.44 (2022-11-09)

Bug Fixes

  • watch: for immediate watch with single source, ensure cb is called with undefined as oldValue (#7075) (5dc593b), closes #7074

3.2.43 (2022-11-09)

Bug Fixes

  • watch: ensure oldValue in multi-source watcher is always an array (23e85e2), closes #7070

3.2.42 (2022-11-09)

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 returning false for built-in instance properties in exposeProxy (#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

3.2.41 (2022-10-14)

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

3.2.40 (2022-09-28)

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

3.2.39 (2022-09-08)

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

3.2.38 (2022-08-30)

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

3.2.37 (2022-06-06)

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

3.2.36 (2022-05-23)

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

3.2.35 (2022-05-20)

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

3.2.34 (2022-05-19)

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 to Component (#5949) (7c8f457)

3.2.34-beta.1 (2022-05-17)

Bug Fixes

  • compiler-core: normalize v-bind:style with array literal value (0f00cf4), closes #5106
  • compiler-core: template v-if should never be treated as dev root fragment (51f3d38), closes #5189
  • compiler-dom: properly stringify v-html/v-text with constant value (6283b2e), closes #5439 #5445
  • compiler-sfc: <script> after <script setup> the script content not end with \\n (3b7b107)
  • compiler-sfc: add test for #5808 (a0290fe)
  • compiler-sfc: async transformer doesn't correctly detect need for semicolon in block #5808 (6c3b681)
  • compiler-sfc: automatically infer component name from filename when using script setup (#4997) (1693924), closes #4993
  • compiler-sfc: defineProps return binding or rest binding should be considered reactive (4101441)
  • compiler-sfc: ensure consistent behavior of export default render with script setup (b7025d2), closes #4980
  • compiler-sfc: fix defineEmits() scope reference check error message (#5404) (f2c48f5)
  • compiler-sfc: fix object default values for reactive props destructure (7dfe146)
  • compiler-sfc: fix skipped srcset transform when using base option (41d255b), closes #4835 #4819 #4834 #4835
  • compiler-sfc: fix template usage check false positives on types (ccf9256), closes #5414
  • compiler-sfc: fix treeshaking of namespace import when used in template (8a123ac), closes #5209
  • compiler-sfc: remove the jsx from the babelParserPlugins when not match the case of adding jsx (#5846) (7d7a241), closes #5845
  • keep-alive: fix unmounting late-included components (da49c86), closes #3648 #3650
  • keep-alive: invoke initial activated hook for async components (20ed16f), closes #5459 #5095 #5651
  • reactivity-transform: fix props access codegen for non-identifier prop names (#5436) (242914d), closes #5425
  • reactivity: ensure computed is invalidated before other effects (82bdf86), closes #5720
  • reactivity: ios10.x compatibility (#4900) (b87dc06)
  • runtime-core: clone root vnode before inheriting directives (d36ca4d)
  • runtime-core: ensure consistent behavior between dev/prod on invalid v-for range (67099fe), closes #5867
  • runtime-core: ensure consistent identity of $forceUpdate and $nextTick instance methods (d52907f), closes #5556
  • runtime-core: ensure raw slot function is only normalized once (#5358) (e4dffe9), closes #5343
  • runtime-core: fix activated hook when using async component with KeepAlive (#5459) (f1d1cdb), closes #5095 #5651
  • runtime-core: fix directive inheritance on dev root fragment (2bab639), closes #5523
  • runtime-core: fix missed updates when passing vnode to (ba17792), closes #4903
  • runtime-core: handle NaN identity check in v-memo (#5852) (a388129), closes #5853
  • runtime-core: transition hooks can be arrays of functions (#5177) (fec12d7)
  • runtime-dom: "el._assign is not a function" in compat mode (#4121) (e58277f)
  • sfc-playground: default selected app (#5370) (04fff05)
  • shared: improve isDate check (#5803) (eef1447)
  • shared: missed Symbol judge in looseEqual (#3553) (0aeb4bc)
  • ssr/sfc-css-vars: fix v-bind css vars codegen for SSR (efea4a8), closes #5443 #5444
  • ssr: don't warn for missing teleport target if disabled (#5135) (da10dd7)
  • ssr: fix hydration error for slot outlet inside transition (9309b04), closes #3989
  • ssr: fix ssr render output for fragment in slots (70c2d5b), closes #5859
  • ssr: implement empty read() on node stream (c355c4b), closes #3846 #3867
  • ssr: render teleport inside async component (#5187) (4d7803e)
  • ssr: resolve teleports for stream render APIs (77fef97)
  • ssr: should de-optimize on vnode with PatchFlags.BAIL (#4818) (cd659fc), closes #4679 #5771
  • ssr: should not hoist transformed asset urls in ssr compile (57bb37b), closes #3874
  • transition/v-show: ensure transition is in persisted mode when used with v-show (425310e), closes #4845 #4852
  • transition: handle edge case of cancel leave before next frame (59cf295), closes #4462
  • types: add Set<any> to checkbox binding type for v-model (#5713) (e5a9089)
  • types: allow css variables in style binding (#5542) (9def7aa)
  • types: allow indeterminate for checkbox (#3473) (d4fcfdd)
  • types: keep the original type when unwrapping markRaw (#3791) (32e53bf)
  • types: preserve and expose original options on defineComponent return type (#5416) (98b821d), closes #3796
  • v-model: exclude range from lazy guard logic (8c51c65), closes #5875
  • v-model: fix case where .trim and .number modifiers are used together (#5842) (71066b5), closes #5839
  • watch: fix flush: pre watchers triggered synchronously in setup (74d2a76), closes #5721
  • watch: fix watching multiple sources containing shallowRef (#5381) (220f255), closes #5371

Features

  • types: avoid props JSDocs loss by default option (#5871) (c901dca)

3.2.33 (2022-04-14)

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

3.2.32 (2022-04-12)

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

3.2.31 (2022-02-12)

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

3.2.30 (2022-02-07)

Features

  • ssr: support custom directive getSSRProps in optimized compilation (60cf175), closes #5304

Performance Improvements

  • reactivity: optimize effect/effectScope active state tracking (2993a24)

3.2.29 (2022-01-23)

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

3.2.28 (2022-01-21)

  • 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

3.2.27 (2022-01-16)

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

  • types: simplify ExtractPropTypes to avoid props JSDocs being removed (#5166) (a570b38)

Performance Improvements

  • improve memory usage for static vnodes (ed9eb62)

3.2.26 (2021-12-12)

3.2.25 (2021-12-12)

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)

3.2.24 (2021-12-06)

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

  • types/script-setup: add generic type to defineExpose (#5035) (34985fe)

3.2.23 (2021-11-26)

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

3.2.22 (2021-11-15)

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)

3.2.21 (2021-11-02)

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

3.2.20 (2021-10-08)

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

  • compiler-sfc: <script setup> defineProps destructure transform (#4690) (467e113)

3.2.19 (2021-09-25)

Bug Fixes

  • compiler-core: should treat attribute key as expression (#4658) (7aa0ea0)
  • server-renderer: respect compilerOptions during runtime template compilation (#4631) (50d9d34)

3.2.18 (2021-09-24)

3.2.17 (2021-09-24)

Bug Fixes

  • build: avoid importing @babel/parser in esm-bundler build (fc85ad2), closes #4665

3.2.16 (2021-09-23)

Bug Fixes

  • ssr: fix ssr runtime helper import in module mode (8e05b7f)

3.2.15 (2021-09-23)

Bug Fixes

  • compiler-ssr: import ssr helpers from updated path (d74f21a)

3.2.14 (2021-09-22)

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)

3.2.13 (2021-09-21)

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)

3.2.12 (2021-09-17)

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

3.2.11 (2021-09-08)

Bug Fixes

  • hmr: handle possible duplicate component definitions with same id (aa8908a)

3.2.10 (2021-09-07)

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

3.2.9 (2021-09-05)

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

3.2.8 (2021-09-02)

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

3.2.7 (2021-09-01)

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)

3.2.6 (2021-08-24)

Bug Fixes

  • build: avoid imports to @babel/types in client build of compiler-core (4c468eb)

3.2.5 (2021-08-24)

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)

3.2.4 (2021-08-17)

Bug Fixes

  • compiler-sfc: fix import usage check for lowercase imported components (57f1081), closes #4358
  • runtime-core: ensure consistent arguments for tempalte and render funtion slot usage (644971e), closes #4367
  • runtime-core: fix child component double update on props change (c1f564e), closes #4365

Reverts

  • Revert "chore: add missing space in warning message (#4359) [ci skip]" (951fbb1), closes #4359

3.2.3 (2021-08-16)

Bug Fixes

  • compiler-core: fix hoisting logic for elements with cached handlers + other bindings (a6c1db2), closes #4327
  • compiler-core: fix style binding edge case (#4319) (092bdcd), closes #4317
  • compiler-sfc: bail on import usage check when template has custom lang (aae3725), closes #4312
  • compiler-sfc: fix import usage check in template strings in expressions (f855ccb), closes #4340
  • defineProps: defineProps generates unnecessary array of same types (#4353) (ad66295), closes #4352
  • runtime-core: patchChildren first in patchElement (#4313) (5b3f1e8)
  • runtime-core: vnode hooks should not be called on async wrapper (#4349) (cd2d984), closes #4346
  • runtime-dom: consistently remove boolean attributes for falsy values (#4348) (620a69b)
  • shared: fix toDisplayString on object with null prototype (#4335) (42a334e), closes #4334
  • types: fix tsx ref component instance type (#2486) (84d4357)

3.2.2 (2021-08-11)

Bug Fixes

Features

  • sfc: support $shallowRef ref sugar (00b76d3)

3.2.1 (2021-08-09)

Bug Fixes

  • compiler-sfc: fix import usage check for last expression (1e1682f)

3.2.0 (2021-08-09)

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

SSR

Generic

Types

  • map declared emits to onXXX props in inferred prop types (#3926) (69344ff)

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.

3.2.0-beta.8 (2021-08-07)

Bug Fixes

  • compiler-core: detected forwarded slots in nested components (#4268) (abb3a81), closes #4244
  • compiler-sfc: fix ref sugar rewrite for identifiers in ts casting expressions (865b84b), closes #4254
  • core: typing of key in VNodeProps (#4242) (d045055), closes #4240
  • runtime-core: component effect scopes should be detached (6aa871e)
  • runtime-dom: fix shadowRoot instanceof check in unsupported browsers (#4238) (bc7dd93)
  • types: remove explicit return type annotation requirement for this inference in computed options (#4221) (d3d5ad2)
  • v-memo: ensure track block when returning cached vnode (#4270) (a211e27), closes #4253
  • v-memo: should work on v-for with constant expression (#4272) (3b60358), closes #4246

Features

  • runtime-dom: support async component in defineCustomElement (c421fb9), closes #4261

3.2.0-beta.7 (2021-07-29)

Bug Fixes

  • reactivity: dereference nested effect scopes on manual stop (1867591)
  • sfc/style-vars: improve ignore style variable bindings in comments (#4202) (771635b)
  • shared: support custom .toString() in text interpolation again (#4210) (9d5fd33), closes #3944
  • suspense: fix dynamicChildren tracking when suspense root is a block itself (51ee84f), closes #4183 #4198

Features

  • server-renderer: decouple esm build from Node + improve stream API (0867222), closes #3467 #3111 #3460
  • sfc: remove experimental status for sfc style v-bind (3b38c9a)

3.2.0-beta.6 (2021-07-27)

Bug Fixes

  • inject: should auto unwrap injected refs (561e210), closes #4196
  • runtime-core: expose ssrUtils in esm-bundler build (ee4cbae), closes #4199
  • sfc/style-vars: should ignore style variable bindings in comments (#4188) (3a75d5d), closes #4185

Features

  • unwrap refs in toDisplayString (f994b97)

3.2.0-beta.5 (2021-07-23)

Bug Fixes

  • hmr: fix custom elements hmr edge cases (bff4ea7)
  • hmr: fix hmr when global mixins are used (db3f57a), closes #4174
  • types: fix types for readonly ref (2581cfb), closes #4180
  • v-model: avoid resetting value of in-focus & lazy input (ac74e1d), closes #4182

Features

  • compiler-sfc: avoid exposing imports not used in template (5a3ccfd), closes #3183
  • runtime-dom: hmr for custom elements (7a7e1d8)
  • runtime-dom: support passing initial props to custom element constructor (5b76843)
  • runtime-dom: support specifying shadow dom styles in defineCustomElement (a7fa4ac)

3.2.0-beta.4 (2021-07-21)

Bug Fixes

  • runtime-core: ensure setupContext.attrs reactivity when used in child slots (8560005), closes #4161
  • runtime-dom: defer setting value (ff0c810), closes #2325 #4024

Performance Improvements

  • skip patch on same vnode (d13774b)

3.2.0-beta.3 (2021-07-20)

Bug Fixes

  • reactivity: revert computed scheduler change (33c2fbf), closes #4157
  • runtime-core: fix v-bind class/style merging regression (2bdee50), closes #4155
  • sfc-playground: Transform named default exports without altering scope (#4154) (acb2a4d)
  • watch: ensure watchers respect detached scope (bc7f976), closes #4158

Features

  • reactivity: deferredComputed (14ca881)
  • runtime-core: watchSyncEffect (d87d059)

3.2.0-beta.2 (2021-07-19)

Bug Fixes

  • compiler-core: fix self-closing tags with v-pre (a21ca3d)
  • compiler-sfc: defineProps infer TSParenthesizedType (#4147) (f7607d3)
  • compiler-sfc: expose correct range for empty blocks (b274b08)
  • compiler-sfc: fix whitespace preservation when block contains single self-closing tag (ec6abe8)
  • compiler-sfc: support const enum (93a950d)
  • reactivity: computed should not trigger scheduler if stopped (6eb47f0), closes #4149
  • runtime-core: fix null type in required + multi-type prop declarations (bbf6ca9), closes #4146 #4147
  • scheduler: fix insertion for id-less job (d810a1a), closes #4148
  • shared: normalizeStyle should handle strings (a8c3a8a), closes #4138
  • ssr: update initial old value to watch callback in ssr usage (#4103) (20b6619)
  • v-model: properly detect input type=number (3056e9b), closes #3813

Features

  • compiler: allow 'comments' option to affect comment inclusion in dev (#4115) (dd0f9d1), closes #3392 #3395
  • compiler-sfc: add ignoreEmpty option for sfc parse method (8dbecfc)
  • types: map declared emits to onXXX props in inferred prop types (#3926) (69344ff)

Performance Improvements

3.2.0-beta.1 (2021-07-16)

Bug Fixes

  • sfc/style-vars: properly re-apply style vars on component root elements change (49dc2dd), closes #3894
  • ensure customElements API ssr compatibility (de32cfa), closes #4129
  • runtime-core: fix default shapeFlag for fragments (2a310df)
  • ignore .prop/.attr modifiers in ssr (29732c2)

Code Refactoring

  • remove deprecated scopeId codegen (f596e00)

Features

  • sfc: (experimental) new ref sugar (562bddb)
  • sfc: support namespaced component tags when using <script setup> (e5a4412)
  • custom element reflection, casting and edge cases (00f0b3c)
  • remove experimental status of <script setup> (27104ea)
  • support v-bind .prop & .attr modifiers (1c7d737)
  • runtime-dom: defineCustomElement (8610e1c)
  • v-memo (3b64508)
  • watchPostEffect (42ace95)
  • reactivity: new effectScope API (#2195) (f5617fc)
  • reactivity: support onTrack/onTrigger debug options for computed (5cea9a1)

Performance Improvements

  • also hoist all-static children array (b7ea7c1)
  • hoist dynamic props lists (02339b6)
  • reactivity: avoid triggering re-render if computed value did not change (ebaac9a)
  • 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)
  • improve VNode creation performance with compiler hints (#3334) (ceff899)

BREAKING CHANGES

  • Output of SFC using <style scoped> generated by 3.2+ will be incompatible w/ runtime <3.2.