Migrating to Vue v3.6.0-rc.1
Version v3.6.0-rc.1 introduces 5 breaking changes. This guide details how to update your code.
Released: 7/18/2026
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
@vue/reactivitycreateVaporAppvaporInteropPlugingetCurrentInstance()slots.default()VaporDirective interfaceBreaking Changes
●Issue #1
In Vapor Mode, `getCurrentInstance()` now returns `null`. Developers should avoid relying on this in Vapor components.
●Issue #2
Component template refs in Vapor Mode do not expose properties like `$el`, `$props`, `$attrs`, `$slots`, and `$refs`. Accessing these will not work as expected.
●Issue #3
Options API is not supported in Vapor Mode. Use `<script setup>` or `<script setup vapor>` instead.
●Issue #4
Calling `slots.default()` in Vapor Mode is no longer a safe dry run. It executes slot rendering logic, which can have side effects like creating DOM nodes and registering reactive effects. Avoid calling slots to inspect their output before rendering.
●Issue #5
Custom directives in Vapor Mode have a new interface. The `value` argument is now a reactive getter.
Migration Steps
- 1To opt into Vapor Mode, add the `vapor` attribute to your `<script setup>` or `<script>` tag (e.g., `<script setup vapor>`).
- 2For template-only SFCs, add the `vapor` attribute to the `<template>` tag (e.g., `<template vapor>`).
- 3If creating a pure Vapor application, use `createVaporApp(App).mount('#app')` instead of `createApp()`.
- 4To use Vapor components within a VDOM app, install the `vaporInteropPlugin`: `createApp(App).use(vaporInteropPlugin).mount('#app')`.
- 5Avoid using `getCurrentInstance()` within Vapor components.
- 6Do not rely on component template refs exposing `$el`, `$props`, `$attrs`, `$slots`, or `$refs` in Vapor Mode.
- 7Refactor any code that uses the Options API in components intended for Vapor Mode to use `<script setup>`.
- 8Avoid calling slot functions like `slots.default()` for inspection purposes in Vapor Mode. Let the template handle slot rendering.
- 9Update custom directive implementations to use the new Vapor directive interface.
Release Summary
Vue 3.6 RC introduces Vapor Mode, a new opt-in compilation mode for SFCs that significantly improves performance and reduces bundle size by refactoring the reactivity system. This release also includes numerous bug fixes, particularly within the Vapor Mode runtime.
Need More Details?
View the full release notes and all changes for Vue v3.6.0-rc.1.
View Full Changelog