¿Es Vue una alternativa real a Angular o React?

Es habitual que nuestra empresa consiga un proyecto nuevo y nos planteemos cómo montar la arquitectura de la parte front. Dependiendo de los conocimientos y experiencia del equipo se decidirá por un framework o librería u otro, generalmente Angular o React, que, a priori, son los más usados.

Pero…¿qué decidirías si nadie del equipo tuviera conocimientos previos? ¿Se pueden crear aplicaciones empresariales con Vue?

La respuesta es que sí, prueba de ellos es que muchas empresas conocidas están empezando a adoptar Vue en sus desarrollos.

Por ejemplo, Alibaba, GitLab, Adobe, IBM, NASA, Nintendo, Trivago, Behance e incluso Facebook ha implementado https://newsfeed.fb.com con Vue.

En estos casos, ¿qué les ha hecho decidirse por Vue?

A pesar de no tener el respaldo de una gran compañía detrás como Google con Angular o Facebook con React, Vue ha subido en su popularidad en estos últimos años. En su lugar, los contribuidores de Vue son soportados por Patreon u otros medios de mecenazgo. Vue fue desarrollado por Evan You, exempleado de Google que trabajó en las primeras versiones de Angular.  En GitHub es de las mejores valoradas, por encima de React o Angular, a día de hoy tiene 143755 estrellas.

¿Es Vue una alternativa real a Angular o React?

La empresa Monterrail realizó una encuesta sobre el estado de Vue.js para 2019.

Una de las preguntas que se formularon fue por qué se decidió añadir Vue al stack tecnológico: el 58% respondió que porque su curva de aprendizaje es más corta que la de otros frameworks, por lo que lo consideran un framework muy fácil con el que empezar.

Según esta encuesta, las startups lo eligieron para comenzar de forma más rápida desarrollos MVP (Minimum Viable Product), mientras que en empresas más grandes su adopción es normalmente por su facilidad de integración con existentes CMS.

Otra de las preguntas fue cuál era la principal ventaja que encontraron al adoptar Vue. Las respuestas fueron:

  • Facilidad de integración.
  • Gran documentación.
  • Rendimiento
  • Ser un framework progresivo (más adelante explicaremos este aspecto con detalle).

También caben destacar las respuestas a la siguiente pregunta: ¿Qué probabilidad hay de que tú o tu empresa continuéis usando Vue para los nuevos proyectos? Un 92,3% respondieron que la probabilidad es alta o muy alta, con apenas un 1% que dijeron que muy baja.

Para los que no conocen todavía Vue, en la página oficial se define como un framework progresivo para construir interfaces de usuario. Esto quiere decir que se puede tanto enfocar en la capa de vista o presentación e integrar fácilmente con otras librerías o proyectos existentes como crear sofisticadas aplicaciones SPA cuando se combinan con otras herramientas modernas y librerías soportadas.

La instalación básica de Vue es muy sencilla, basta con añadir una referencia en el fichero Html donde queramos usarlo:

Carbón

Y, por ejemplo, añadir un div para pintar un mensaje de ‘Hello Vue’:

Carbón

De esta forma, ya estamos empezando a usar Vue y el modelo MVVM. Los datos y el DOM ya están enlazados y a partir de ahora todo es reactivo.

Para el scaffolding de los proyectos, existe la herramienta llamada Vue CLI que te permite crear y configurar entornos robustos de desarrollo en minutos. Se puede bien ejecutar desde la consola o desde la interfaz gráfica ejecutando el comando vue ui el cual levanta una aplicación en el servidor para poder crear el nuevo proyecto.

Vue

Para la depuración de aplicaciones Vue existen la herramienta vue-devtools, la cual permite depurar fácilmente en Chrome:

Vue

Otro de los puntos clave de Vue es el ecosistema que existe actualmente:

  • Typescript: Ya es posible a través de decoradores incluir Typescript en los componentes Vue, en la versión 3 ya vendrá incorporado directamente.
  • Vue Router: Para la navegación.
  • Vuex: Para la gestión del estado, el cual se basa en el patrón Flux al igual que Redux.
  • Nuxt. js: Si quieres construir una aplicación basada en Vue con un alto rendimiento, basada en componentes, con SSR (Server Side Rendering) para que funcione el SEO de tu aplicación deberías usar Nuxt.js (es la versión de Next.js para Vue).
  • Vuetify: Implementa Material Design en una serie de componentes para Vue.
  • Nativescript-vue: Si quieres usar Vue para construir aplicaciones usando interfaz nativa de componentes para móvil

Incluso existe la posibilidad de crear tus propios plugins para reutilizar funcionalidad en tus proyectos o contribuir al ecosistema de Vue.

Otra de las características de Vue es la gran comunidad que hay por detrás. Es RFC (“Request for comments”), esto quiere decir que proporcionan una forma consistente y controlada para incorporar nuevas características al framework.

Es por ello que la versión 3 va a llevar consigo cambios sustanciales y va a ser disruptiva. A pesar de ello, recomiendan aprender la versión 2 de Vue y no esperar a la versión 3, la cual saldrá a lo largo del año.

Autor: Rafael Sánchez, Technical Lead at Bravent