Change8

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

5
Breaking Changes
9
Migration Steps
6
Affected Symbols

⚠️ Check Your Code

If you use any of these symbols, you need to read this guide:

@vue/reactivitycreateVaporAppvaporInteropPlugingetCurrentInstance()slots.default()VaporDirective interface

Breaking 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

  1. 1
    To opt into Vapor Mode, add the `vapor` attribute to your `<script setup>` or `<script>` tag (e.g., `<script setup vapor>`).
  2. 2
    For template-only SFCs, add the `vapor` attribute to the `<template>` tag (e.g., `<template vapor>`).
  3. 3
    If creating a pure Vapor application, use `createVaporApp(App).mount('#app')` instead of `createApp()`.
  4. 4
    To use Vapor components within a VDOM app, install the `vaporInteropPlugin`: `createApp(App).use(vaporInteropPlugin).mount('#app')`.
  5. 5
    Avoid using `getCurrentInstance()` within Vapor components.
  6. 6
    Do not rely on component template refs exposing `$el`, `$props`, `$attrs`, `$slots`, or `$refs` in Vapor Mode.
  7. 7
    Refactor any code that uses the Options API in components intended for Vapor Mode to use `<script setup>`.
  8. 8
    Avoid calling slot functions like `slots.default()` for inspection purposes in Vapor Mode. Let the template handle slot rendering.
  9. 9
    Update 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