Vue.js Releases
Track every Vue.js release from latest stable to end-of-life. Version timelines, Composition API adoption, ecosystem compatibility, and upgrade guidance.
—
Total Versions
—
Supported
—
Latest
Version Timeline
All tracked releases with lifecycle status and EOL dates.
Loading version data…
Lifecycle Timeline
Visual overview of active support and maintenance windows.
Upgrade Paths
Migration guidance between major versions — breaking changes, effort estimates, and tips.
Breaking Changes
- Global API restructured (createApp() replaces new Vue())
- v-model reworked (value/input → modelValue/update:modelValue)
- Filters removed — use computed properties or methods
- $listeners removed — merged into $attrs
- Event bus ($on/$off/$once) removed — use mitt or tiny-emitter
- Render function API changed (h() import instead of createElement parameter)
- Transition class names changed (v-enter → v-enter-from)
- Functional components syntax changed
- Vuex replaced by Pinia as recommended store
Migration Notes
Use the Migration Build (vue/compat) which runs Vue 3 but emulates Vue 2 behavior with deprecation warnings. Fix warnings one at a time. Largest effort: updating third-party libraries (Vuetify, Element UI, etc.) to Vue 3 compatible versions. Budget 2-4 weeks for a medium app.
Breaking Changes
- Generics in <script setup> components
- defineSlots() for typed slot definitions
- defineOptions() macro (no separate script block needed)
- Better defineModel() for two-way binding
Migration Notes
Mostly additive. No breaking changes. Update vue and toolchain packages. New features are opt-in.
Breaking Changes
- defineModel() stable (previously experimental)
- v-bind shorthand (:name instead of :name="name")
- Improved hydration mismatch errors for SSR
- Reactive props destructure (stable)
Migration Notes
Non-breaking release. Update packages. If you used experimental defineModel or reactive destructure, they are now stable with the same API.
Breaking Changes
- Reactive Props Destructure enabled by default
- useTemplateRef() replaces template ref casting
- useId() for SSR-safe unique IDs
- Deferred Teleport for rendering order control
- onWatcherCleanup() for cleanup logic
Migration Notes
Additive release. Reactive Props Destructure is now default (was opt-in). If you disabled it explicitly, remove the config override. useTemplateRef() is the new recommended pattern but old ref() approach still works.
Version Risk Assessment
Evaluate risk factors before choosing a version for production.
| Version | EOL Risk | CVE Risk | Ecosystem | Cloud Support | Overall | Recommended Action |
|---|---|---|---|---|---|---|
| Vue.js 2.x | Critical | Medium | EOL | Legacy | Critical | EOL Dec 2023 — migrate to Vue 3 immediately |
| Vue.js 3.3 | High | Low | Outdated | Full | High | Update to 3.5 — straightforward minor update |
| Vue.js 3.4 | Medium | Low | Supported | Full | Medium | Update to 3.5 when convenient |
| Vue.js 3.5 | Low | Low | Active | Full | Low | Current recommended version |
Risk score factors EOL status, ecosystem support, library compatibility, and security posture. Assessed as of March 2026.
Vue 3 Minor Version Feature Comparison
Side-by-side feature differences across major versions.
| Feature | 3.2 | 3.3 | 3.4 | 3.5 |
|---|---|---|---|---|
| <script setup> | Stable | Stable | Stable | Stable |
| Composition API | Stable | Stable | Stable | Stable |
| defineModel() | No | Experimental | Stable | Stable |
| Reactive Props Destructure | No | Experimental | Stable | Default on |
| Generics in SFC | No | Stable | Stable | Stable |
| defineSlots() | No | Stable | Stable | Stable |
| useTemplateRef() | No | No | No | Stable |
| useId() | No | No | No | Stable |
| v-bind shorthand | No | No | Stable | Stable |
| Deferred Teleport | No | No | No | Stable |
| SSR hydration errors | Basic | Basic | Improved | Improved |
| Nuxt compatibility | Nuxt 3.0+ | Nuxt 3.6+ | Nuxt 3.9+ | Nuxt 3.13+ |
| Vuetify compatibility | 3.0+ | 3.3+ | 3.5+ | 3.7+ |
Embed Badges
Add live Vue.js status badges to your README, docs, or dashboard.
Health Status
Overall support health

EOL Countdown
Next end-of-life date

Latest Version
Current stable release

CVE Status
Known vulnerabilities

Frequently Asked Questions
Common questions about Vue.js releases and lifecycle.