Skip to content

Latest commit

 

History

History
384 lines (212 loc) · 32.2 KB

CHANGELOG.md

File metadata and controls

384 lines (212 loc) · 32.2 KB

3.3.2 (2023-05-12)

Bug Fixes

  • compiler-core: treat floating point numbers as constants (8dc8cf8), closes #8295
  • compiler-dom: do not throw in production on side effect tags (c454b9d), closes #8287 #8292
  • compiler-sfc: fix regression on props destructure when transform is not enabled (f25bd37), closes #8289
  • compiler-sfc: handle prop keys that need escaping (#7803) (690ef29), closes #8291
  • compiler-sfc: properly parse d.ts files when resolving types (aa1e77d), closes #8285
  • compiler-sfc: raise specific warning for failed extends and allow ignoring extends (8235072), closes #8286

3.3.1 (2023-05-11)

Bug Fixes

  • suspense: handle nested sync suspense for hydration (a3f5485)
  • For a detailed walkthrough of the new features in 3.3, please read the release blog post.

  • Features and deprecations listed here are aggregated from the beta and alpha releases. For full chronological history, bug fixes, and other minor features, please consult the individual logs of the 3.3 beta and alpha releases.

Features

  • sfc: support imported types in SFC macros (#8083)
  • types/slots: support slot presence / props type checks via defineSlots macro and slots option (#7982) (5a2f5d5)
  • sfc: support more ergnomic defineEmits type syntax (#7992) (8876dcc)
  • sfc: introduce defineModel macro and useModel helper (#8018) (14f3d74)
  • reactivity: improve support of getter usage in reactivity APIs (#7997) (59e8284)
  • compiler-sfc: add defineOptions macro (#5738) (bcf5841)
  • types/jsx: support jsxImportSource, avoid global JSX conflict (#7958) (d0b7ef3)
  • dx: improve readability of displayed types for props (4c9bfd2)
  • app: app.runWithContext() (#7451) (869f3fb)
  • hasInjectionContext() for libraries (#8111) (5510ce3)
  • allow accessing console in template (#6508) (fe76224), closes #7939
  • suspense: introduce suspensible option for <Suspense> (#6736) (cb37d0b), closes #5513
  • compiler-dom: treat inert as boolean attribute (#8209) (918ec8a), closes #8208
  • types: add slots types for built-in components (#6033) (3cb4dc9)
  • types: provide ExtractPublicPropTypes utility type (bff63c5), closes #5272 #8168
  • compiler-sfc: expose parseCache (4576548), closes #8202

Deprecations

  • deprecation: deprecate @vnode hooks in favor of vue: prefix (5f0394a)
  • deprecation: deprecate v-is directive (bbd8301)
  • deprecation: unwrap injected refs in Options API by default, deprecate app.config.unwrapInjectedRefs (526fa3b)

3.3.0-beta.5 (2023-05-08)

Bug Fixes

  • build: retain defineComponent() treeshakability in Rollup (c2172f3), closes #8236
  • compiler-sfc: enable props destructure when reactivity transform option is enabled (862edfd)
  • compiler-sfc: fix built-in type resolving in external files (6b194bc), closes #8244
  • compiler-sfc: transform destructured props when reactivity transform option is enabled (#8252) (287bd99)
  • runtime-core: ensure defineComponent name in extraOptions takes higher priority (b2be75b)
  • runtime-dom: check attribute value when setting option value (#8246) (4495373), closes #8227
  • suspense: fix nested suspensible suspense with no asyn deps (e147512), closes #8206
  • types: remove short syntax support in defineSlots() (1279b17)

3.3.0-beta.4 (2023-05-05)

Bug Fixes

  • runtime-core: handle template ref with number values (#8233) (1b1242f), closes #8230
  • types: retain compatibility for provide() usage with explicit type parameter (038cd83)

Features

3.3.0-beta.3 (2023-05-01)

Bug Fixes

  • compiler-core: handle slot argument parsing edge case (b434d12)
  • hmr: keep slots proxy mutable for hmr (c117d9c), closes #8188
  • types: fix provide type checking for ref value (de87e6e), closes #8201

Features

3.3.0-beta.2 (2023-04-25)

Bug Fixes

  • compiler-sfc: avoid all hard errors when inferring runtime type (2d9f6f9)
  • compiler-sfc: normalize windows paths when resolving types (#8136) (29da504)
  • compiler-sfc: props bindings should not override user declared bindings (433a58c), closes #8148

Features

  • compiler-sfc: support project references when resolving types (1c0be5c), closes #8140

Performance Improvements

  • compiler-sfc: infer ref binding type for more built-in methods (a370e80)

3.3.0-beta.1 (2023-04-21)

Features

  • allow accessing console in template (#6508) (fe76224), closes #7939
  • compiler-sfc: improve utility type Partial and Required (#8103) (1d1d728)
  • deprecation: deprecate @vnode hooks in favor of vue: prefix (5f0394a)
  • deprecation: deprecate v-is directive (bbd8301)
  • deprecation: unwrap injected refs in Options API by default, deprecate app.config.unwrapInjectedRefs (526fa3b)
  • suspense: introduce suspensible option for <Suspense> (#6736) (cb37d0b), closes #5513

3.3.0-alpha.13 (2023-04-20)

Bug Fixes

  • compiler-sfc: handle type merging + fix namespace access when inferring type (d53e157), closes #8102
  • compiler-sfc: normalize filename when invalidating cache (9b5a34b)
  • hmr: always traverse static children in dev (f17a82c), closes #7921 #8100
  • hmr: force update cached slots during HMR (94fa67a), closes #7155 #7158

Features

  • compiler-sfc: support dynamic imports when resolving types (4496456)
  • compiler-sfc: support export * when resolving types (7c3ca3c)
  • compiler-sfc: support ExtractPropTypes when resolving types (50c0bbe), closes #8104
  • hasInjectionContext() for libraries (#8111) (5510ce3)

3.3.0-alpha.12 (2023-04-18)

Bug Fixes

  • compiler: fix expression codegen for literal const bindings in non-inline mode (0f77a2b)

3.3.0-alpha.11 (2023-04-17)

Bug Fixes

  • compiler-sfc: normalize windows paths when resolving types (271df09)

3.3.0-alpha.10 (2023-04-17)

Bug Fixes

  • hmr: invalidate cached props/emits options on hmr (4b5b384)
  • runtime-core: properly merge props and emits options from mixins (#8052) (c94ef02), closes #7989

Features

  • compiler-sfc: expose type import deps on compiled script block (8d8ddd6)
  • compiler-sfc: expose type resolve APIs (f22e32e)
  • compiler-sfc: mark props destructure as experimental and require explicit opt-in (6b13e04)
  • compiler-sfc: support intersection and union types in macros (d1f973b), closes #7553
  • compiler-sfc: support limited built-in utility types in macros (1cfab4c)
  • compiler-sfc: support mapped types, string types & template type in macros (fb8ecc8)
  • compiler-sfc: support namespace members type in macros (5ff40bb)
  • compiler-sfc: support relative imported types in macros (8aa4ea8)
  • compiler-sfc: support resolving type imports from modules (3982bef)
  • compiler-sfc: support specifying global types for sfc macros (4e028b9), closes /github.com/vuejs/core/pull/8083#issuecomment-1508468713
  • compiler-sfc: support string indexed type in macros (3f779dd)
  • compiler-sfc: support string/number indexed types in macros (760755f)

Performance Improvements

  • compiler: use source-map-js (19e17a9)

3.3.0-alpha.9 (2023-04-08)

Bug Fixes

  • compiler-sfc: accept StringLiteral node in defineEmit tuple syntax (#8041) (3ccbea0), closes #8040
  • compiler-sfc: fix binding type for constants when hoistStatic is disabled (#8029) (f7f4624)
  • compiler-sfc: skip empty defineOptions and support TypeScript type assertions (#8028) (9557529)
  • compiler-ssr: disable v-once transform in ssr vdom fallback branch (05f94cf), closes #7644
  • types: improve defineProps return type with generic arguments (91a931a)
  • types: more public type argument order fix (af563bf)
  • types: retain type parameters order for public types (bdf557f)

Features

Reverts

  • Revert "chore: remove unused args passed to ssrRender" (b117b88)

3.3.0-alpha.8 (2023-04-04)

Bug Fixes

  • compiler-sfc: check binding is prop before erroring (f3145a9), closes #8017

3.3.0-alpha.7 (2023-04-03)

Bug Fixes

  • compiler-dom: handle newlines when evaluating constants during stringification (#7995) (5261085), closes #7994
  • compiler-sfc: use dynamic defaults merging for methods with computed keys (482f2e3), closes #7113

Features

  • compiler-sfc: codegen support for defineEmits() short syntax (followup of #7992) (ef73ea5)
  • compiler-sfc: support arbitrary expression as withDefaults argument (fe61944), closes #6459
  • reactivity: improve support of getter usage in reactivity APIs (#7997) (59e8284)
  • sfc: revert withDefaults() deprecation (4af5d1b)
  • sfc: support more ergnomic defineEmits type syntax (#7992) (8876dcc)
  • types/slots: support slot presence / props type checks via defineSlots macro and slots option (#7982) (5a2f5d5)

3.3.0-alpha.6 (2023-03-30)

Bug Fixes

  • compiler-core: check if expression is constant (#7974) (77686cf), closes #7973
  • compiler-core: fix codegen for literal const in non-inline mode (6bda4b6)
  • compiler-sfc: allow <script> with lang='js' (#7398) (9f5e20c)
  • compiler-sfc: avoid codegen conflict with user variable named expose (#7949) (c839129), closes #7890
  • compiler-sfc: disallow expose property in defineOptions (#7967) (93f7729)
  • compiler-sfc: fix defineExpose() codegen regression from #7949 (a94072d)
  • compiler-sfc: fix edge case of default export call with no args (#7536) (d60e58c), closes #7534
  • compiler-sfc: fix function default value handling w/ props destructure (e10a89e)
  • compiler-sfc: handle more TS built-in utilities in defineProps inference (4355d24)
  • compiler-sfc: infer function prop type from type literal w/ callable signature (#7119) (3a7572c)
  • compiler-sfc: infer object type for empty type literal (1a04fba)
  • compiler-sfc: infer runtime type in defineProps (#7972) (ba4cec3)
  • compiler-sfc: infer TS Extract&Exclude runtime type (#7339) (6391daf), closes #7337 #6252
  • compiler-sfc: infer TSIntersectionType in defineProps (#7394) (151a8ad)
  • compiler-sfc: properly handle unknown types in runtime prop inference (5fb406e), closes #7511
  • compiler-sfc: properly remove comma of multiple macros in the same declaration (#7423) (336a3d7), closes #7422 #6778
  • compiler-sfc: rewrite default export with AST analysis instead of regex (#7068) (701b95f), closes #7038 #7041 #7078
  • compiler-sfc: unwrap TS node for defineProps (#7340) (1b69d5f)
  • compiler-sfc: use prependLeft to handle CSSVars (#7760) (139104b)
  • jsx-runtime: fix automatic runtime implementation (#7959) (5838950)
  • jsx-runtime: handle keys (#7976) (ff60b93)
  • types/jsx: jsx-runtime types for global JSX namespace registration (#7978) (0f73f39)
  • types/jsx: move JSX DOM types back to @vue/runtime-dom (#7979) (ffe679c)
  • types/jsx: remove $slots children override (28e30c8)
  • types: revert jsx global removal (to be removed in 3.4) (e224922)

Features

  • compiler-core: support parsing const modifier in type parameters (#7912) (b7bd50f)
  • compiler-sfc: add defineOptions macro (#5738) (bcf5841)
  • compiler-sfc: enable reactive props destructure by default (#7986) (ba9c2ae)
  • compiler-sfc: improve runtime props inference for enum (eded947)
  • compiler-sfc: support generating variable instead of default export in compileScript (71635be)
  • compiler-sfc: support module string names syntax (#7428) (0002567)
  • complier-sfc: hoist literal constants for script (#5752) (7def8b1), closes #5750
  • runtime-core: add skipCheck for prop (#7548) (63ad77f)
  • sfc: deprecate reactivity transform (efb54e7)
  • types: defineComponent() with generics support (#7963) (d77557c), closes #3102

BREAKING CHANGES

  • types: The type of defineComponent() when passing in a function has changed. This overload signature is rarely used in practice and the breakage will be minimal, so repurposing it to something more useful should be worth it.

3.3.0-alpha.5 (2023-03-26)

Bug Fixes

  • runtime-core: support getCurrentInstance across mutiple builds of Vue (8d2d5bf)
  • types: ensure defineProps with generics return correct types (c288c7b)

Features

  • dx: improve readability of displayed types for props (4c9bfd2)
  • types/jsx: support jsxImportSource, avoid global JSX conflict (#7958) (d0b7ef3)

Note on JSX Types Change

  • In the next minor (3.4), Vue no longer registers the global JSX namespace by default. This is necessary to avoid global namespace collision with React so that TSX of both libs can co-exist in the same project. This should not affect SFC-only users with latest version of Volar.

    For TSX users, it is suggested to set jsxImportSource to 'vue' in tsconfig.json after upgrading to 3.3, or opt-in per file with /* @jsxImportSource vue */. This will allow you to opt-in to the new behavior now and upgrade seamlessly when 3.4 releases.

    If there is code that depends on the presence of the global JSX namespace, you can retain the exact pre-3.4 global behavior by explicitly referencing vue/jsx, which registers the global JSX namespace.

    Note that the planned change in 3.4 is a type-only breaking change in a minor release, which adheres to our release policy.

3.3.0-alpha.4 (2023-02-06)

Bug Fixes

  • build: fix const enum w/ number values (92bb189)

3.3.0-alpha.3 (2023-02-06)

Bug Fixes

  • build: avoid const enum conflicts (d1181ad)

3.3.0-alpha.2 (2023-02-05)

Bug Fixes

  • build: fix dev flag replacement in esm-bundler builds (5851eaa)

3.3.0-alpha.1 (2023-02-05)

Bug Fixes

  • build: ensure BaseTransition functions can be tree-shaken (3a6f5eb)

Previous Changelogs

3.2.x (2021-07-16 - 2023-02-02)

See 3.2 changelog

3.1.x (2021-05-08 - 2021-07-16)

See 3.1 changelog

3.0.x (2019-12-20 - 2021-04-01)

See 3.0 changelog