@vue/compiler-dom
Advanced tools
Changelog
3.4.5 (2024-01-04)
Changelog
3.4.4 (2024-01-03)
watchEffect
(#9948) (f300a40)Changelog
3.4.1 (2023-12-30)
Read this blog post for an overview of the release highlights.
To fully leverage new features in 3.4, it is recommended to also update the following dependencies when upgrading to 3.4:
If using TSX with Vue, check actions needed in Removed: Global JSX Namespace.
Make sure you are no longer using any deprecated features (if you are, you should have warnings in the console telling you so). They may have been removed in 3.4.
once
option to watch (#9034) (a645e7a)using
syntax (#8786) (5b2bd1d)defineModel
support local mutation by default, remove local option (f74785b), closes /github.com/vuejs/rfcs/discussions/503#discussioncomment-7566278__VUE_PROD_HYDRATION_MISMATCH_DETAILS__
feature flag (#9550) (bc7698d)FunctionalComponent
(#8644) (927ab17)AriaAttributes
type (#8909) (fd0b6ba)ObjectPlugin
and FunctionPlugin
types (#8946) (fa4969e), closes #8577DefineProps
type (096ba81)PublicProps
type (#2403) (44135dc)h
with native elements (#9756) (a625376)ComponentInstance
type (#5408) (bfb8565)Starting in 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.
If you are using TSX, there are two options:
Explicitly set jsxImportSource to 'vue'
in tsconfig.json
before upgrading to 3.4. You can also opt-in per file by adding a /* @jsxImportSource vue */
comment at the top of the file.
If you have code that depends on the presence of the global JSX
namespace, e.g. usage of types like JSX.Element
etc., you can retain the exact pre-3.4 global behavior by explicitly referencing vue/jsx
, which registers the global JSX
namespace.
Note that this is a type-only breaking change in a minor release, which adheres to our release policy.
app.config.unwrapInjectedRef
has been removed. It was deprecated and enabled by default in 3.3. In 3.4 it is no longer possible to disable this behavior.@vnodeXXX
event listeners in templates are now a compiler error instead of a deprecation warning. Use @vue:XXX
listeners instead.v-is
directive has been removed. It was deprecated in 3.3. Use the is
attribute with vue:
prefix instead.Changelog
3.4.1 (2023-12-30)
Read this blog post for an overview of the release highlights.
To fully leverage new features in 3.4, it is recommended to also update the following dependencies when upgrading to 3.4:
If using TSX with Vue, check actions needed in Removed: Global JSX Namespace.
Make sure you are no longer using any deprecated features (if you are, you should have warnings in the console telling you so). They may have been removed in 3.4.
once
option to watch (#9034) (a645e7a)using
syntax (#8786) (5b2bd1d)defineModel
support local mutation by default, remove local option (f74785b), closes /github.com/vuejs/rfcs/discussions/503#discussioncomment-7566278__VUE_PROD_HYDRATION_MISMATCH_DETAILS__
feature flag (#9550) (bc7698d)FunctionalComponent
(#8644) (927ab17)AriaAttributes
type (#8909) (fd0b6ba)ObjectPlugin
and FunctionPlugin
types (#8946) (fa4969e), closes #8577DefineProps
type (096ba81)PublicProps
type (#2403) (44135dc)h
with native elements (#9756) (a625376)ComponentInstance
type (#5408) (bfb8565)Starting in 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.
If you are using TSX, there are two options:
Explicitly set jsxImportSource to 'vue'
in tsconfig.json
before upgrading to 3.4. You can also opt-in per file by adding a /* @jsxImportSource vue */
comment at the top of the file.
If you have code that depends on the presence of the global JSX
namespace, e.g. usage of types like JSX.Element
etc., you can retain the exact pre-3.4 global behavior by explicitly referencing vue/jsx
, which registers the global JSX
namespace.
Note that this is a type-only breaking change in a minor release, which adheres to our release policy.
app.config.unwrapInjectedRef
has been removed. It was deprecated and enabled by default in 3.3. In 3.4 it is no longer possible to disable this behavior.@vnodeXXX
event listeners in templates are now a compiler error instead of a deprecation warning. Use @vue:XXX
listeners instead.v-is
directive has been removed. It was deprecated in 3.3. Use the is
attribute with vue:
prefix instead.Changelog
3.4.0-rc.3 (2023-12-27)
Changelog
3.4.0-rc.2 (2023-12-26)