DEV Community


Posted on • Updated on

Vue2 to Vue3 Upgrade.

Upgrading from Vue 2 to Vue 3 involves several code changes and updates, as Vue 3 introduced some significant changes and improvements. Below are the key code changes you'll need to make for a Vue 2 to Vue 3 upgrade:

-- Vue Composition API:

Vue 3 introduces the Composition API, which allows you to organize your component logic more modularly. You should refactor your components to use the Composition API when appropriate. Here's an example of the Composition API:


-- Props Declaration:

In Vue 3, you should explicitly declare props using the props option:

-- Emitting Events:

In Vue 3, you should use the emit function to emit custom events instead of $emit:

-- Filters:

Vue 3 removed filters. You can achieve similar functionality using methods or computed properties.


-- Updated v-model:

Vue 3 replaces the v-model directive with v-model custom directives. You'll need to update your components accordingly if using v-model.

-- Global APIs:

Some global Vue APIs have been removed or replaced. For example, you should use createApp to create an app instance instead of new Vue({}). Additionally, Vue.component has been replaced with app.component.


-- Transition and Animation:

Vue 3 introduces a new system for transitions and animations. If you were using <transition> and <transition-group> in Vue 2, you must adapt your code for Vue 3.

-- Custom Directives:

Vue 3 allows custom directives to be written using the app.directive method.


-- Scoped Slots:

Scoped slots have been replaced with the new <slot> and <template v-slot> syntax.

-- Async Components:

You should use defineAsyncComponent to create async components in Vue 3.


-- Inject and Provide:

The provide and inject API has been updated to use inject as a part of setup().

These examples illustrate some fundamental code changes you must make when upgrading from Vue 2 to Vue 3. Be sure to consult the official Vue 3 documentation and migration guide for comprehensive details on specific changes and updates relevant to your project.

Top comments (0)