Actualizar a Vue 3 en 3 pasos

Cristian Poley
3 min readNov 23, 2020
Artículo para la actualización de tus aplicaciones Vue2 a Vue3
One Peace: Vue3

Si aún no conoces que trae la nueva versión de Vue, ¡estás tardando! Publiqué un artículo en Octuweb donde puedes conocer las novedades y cambios que trae esta versión.

En esta story vamos a ver cómo podemos migrar nuestra aplicación en Vue 2 a la nueva versión.

El estado actual de las librerías del Package.json es:

Paso 1: Actualizar dependencias utilizando CLI

Instalar o actualizar el CLI:

npm install -g @vue/cli

Una vez instalado/actualizado el CLI, hay que lanzar estos dos comandos en la carpeta de tu proyecto para actualizar las dependencias:

vue upgrade
vue add vue-next

Por lo que el Package.json anterior quedaría:

Package.json actualizado

El plugin Vue Next no solo actualiza e instala las nuevas dependencias, sino que modifica el código para que sea compatible con la nueva versión, en mi caso se han modificado los ficheros:

.eslintrc.js
babel.config.js
package.json
main.js

Paso 2: Actualizar otras dependencias

El CLI no actualiza librerías complementarias como pueden ser VueRouter o VueI18n. Podemos actualizarlas a las últimas versiones compatibles con la versión 3 de Vue:

npm install vue-router@next
npm install vue-i18n@next

Paso 3: Modificaciones del código

Lo primero que vemos es que el fichero main.js de Vue ya no tiene una exportación predeterminada.

Ahora debemos importarnos el método createApp indicando el contenedor en el que se cargará. De esta forma, podemos añadir APIs (por ejemplo Vuex o Vue I18n) que se aplican únicamente sobre la instancia de la aplicación específica y no sobre toda la aplicación.

Vue Router

Router sigue el mismo cambio que lo comentado anteriormente: new Router pasa a ser createRouter. En la nueva versión, siempre debe definir el tipo de history. Puede elegir entre createWebHashHistory, createMemoryHistory y createWebHistory.

Vue Router v3 → Vue Router v4

Vue i18n

De nuevo vemos el mismo patrón de cambio, new VueI18n pasa a ser createI18n.

Vue i18n v8 → Vue i18n v9

Espero que te guste la breve guía. ¿Te animas a actualizar tu proyecto también? 👍

--

--