- 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
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 should 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 true. (#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 template and render function 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.
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.
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
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)
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)
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)
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
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)
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
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.