Centro de la Innovación la Agroindustria y la Aviación
Instructor: Alexander Patiño Londoño

Framework Progresivo de JavaScript

El arte de
construir
interfaces

Vue.js es el framework JavaScript que cambió la forma de pensar en el desarrollo web frontend — reactivo, elegante y progresivamente adoptable.

220K+⭐ GitHub Stars
4M+Descargas / semana
2014Año de creación
v3.5Versión actual

Una historia de
innovación

Vue.js nació de la mente de Evan You, ex-ingeniero de Google que trabajó en AngularJS. Frustrado por la complejidad de los frameworks existentes, quería extraer las partes que realmente le gustaban de Angular y construir algo más liviano.

En 2013, mientras trabajaba en Google Creative Lab, comenzó a experimentar con un prototipo llamado "Seed.js". La primera versión pública, v0.6.0, se lanzó en diciembre de 2013 y el 8 de febrero de 2014 fue anunciado al mundo en Hacker News.

Lo que comenzó como un proyecto personal se convirtió en uno de los frameworks más queridos de la comunidad JavaScript — prueba de que la simplicidad y la elegancia siempre triunfan.

Diciembre 2013
v0.6 — Lanzamiento inicial
Primera versión pública liberada por Evan You.
Febrero 2014
Anuncio en Hacker News
Vue.js se presenta al mundo con gran entusiasmo.
Octubre 2015
Vue 1.0 — Evangelion
Primera versión estable con sistema de componentes maduro.
Septiembre 2016
Vue 2.0 — Ghost in the Shell
Virtual DOM, SSR y mejor rendimiento. Explosión de popularidad.
Septiembre 2020
Vue 3.0 — One Piece
Composition API, TypeScript nativo, Teleport y Fragments.
2022 – hoy
Vue 3.x — Madurez total
Vue 3 por defecto. Nuxt 3, Vite y el ecosistema florecen.

¿Por qué Vue?

Vue fue diseñado desde el principio para ser adoptado de forma incremental, centrándose en la capa de vista e integrándose fácilmente con cualquier proyecto.

Reactividad Declarativa

El sistema rastrea automáticamente las dependencias en tiempo de ejecución. Cuando el estado cambia, la vista se actualiza de forma eficiente y precisa.

🧩

Basado en Componentes

Los Single File Components (.vue) encapsulan template, lógica y estilos en un único archivo reutilizable y auto-contenido.

📈

Progresivo por Naturaleza

Agrega Vue a una parte de una página existente sin reescribir todo. Escala desde un simple widget hasta una SPA compleja.

🎭

Composition API

Organiza la lógica de componentes por funcionalidad con script setup. Facilita la reutilización con composables y mejora TypeScript.

🚀

Alto Rendimiento

Vue 3 optimiza agresivamente el Virtual DOM generando código altamente optimizado que reduce el overhead en tiempo de ejecución.

🔷

TypeScript Nativo

Escrito completamente en TypeScript. Autocompletado, verificación de tipos y refactoring seguro desde el primer día sin configuración.

🎨

Directivas Poderosas

v-if, v-for, v-model, v-bind, v-on — directivas integradas que cubren todos los patrones comunes de UI con sintaxis declarativa.

🔄

Transiciones Animadas

Sistema integrado de transiciones CSS/JS para elementos que entran y salen del DOM. Experiencias fluidas con mínimo esfuerzo.

🛠️

DevTools Excepcionales

La extensión Vue DevTools permite inspeccionar el árbol de componentes, el estado, los eventos y el historial de cambios en tiempo real.

Código elegante
por diseño

Un componente Vue combina template HTML con lógica JavaScript de forma natural. La Composition API con <script setup> es la forma moderna recomendada en Vue 3.

El template usa sintaxis HTML familiar con extensiones especiales. La interpolación {{ }} y las directivas v-* hacen la lógica de vista explícita y legible.

La reactividad es automática: declara datos con ref() o reactive() y Vue rastreará los cambios actualizando solo lo necesario.

Contador.vue
<template>
  <div class="contador">
    <h2>{{ titulo }}</h2>
    <p>Clicks: <strong>{{ count }}</strong></p>
    <button @click="incrementar">➕ Incrementar</button>
    <button @click="resetear">🔄 Resetear</button>
  </div>
</template>

<script setup>
import { ref, computed } from 'vue'

// Props del componente
const props = defineProps({
  titulo: { type: String, default: 'Contador Vue' }
})

// Estado reactivo
const count = ref(0)

// Propiedad computada
const esPar = computed(() => count.value % 2 === 0)

// Métodos
const incrementar = () => count.value++
const resetear    = () => count.value = 0
</script>

<style scoped>
.contador { padding: 2rem; border-radius: 8px; }
</style>

Todo lo que necesitas,
ya existe

🟢
Nuxt.js
Framework full-stack basado en Vue. SSR, SSG y generación estática out-of-the-box.
🍍
Pinia
State management oficial. Más simple que Vuex, con TypeScript nativo y DevTools.
🔀
Vue Router
Router oficial para SPAs. Rutas anidadas, guards de navegación y lazy loading.
Vite
Build tool ultra-rápido de Evan You. HMR instantáneo y bundling optimizado.
🧪
Vitest
Testing unitario potenciado por Vite. Compatible con Jest, extremadamente rápido.
🎯
VueUse
Más de 200 composables esenciales para Vue. Productividad al máximo nivel.
📱
Ionic Vue
Apps móviles iOS y Android con Vue usando componentes nativos de Ionic.
🖥️
Quasar
SPA, SSR, PWA, apps móviles y desktop con una sola base de código Vue.

Vue vs la competencia

Comparación honesta entre Vue.js, React y Angular para ayudarte a elegir la herramienta adecuada.

Característica Vue.js React Angular
Curva de aprendizajeMuy bajaModeradaAlta
Bundle (min+gzip)~22 KB~42 KB~130 KB+
TypeScript Nativo Opcional Requerido
Two-way binding v-model Manual ngModel
Single File Components .vue JSX 3 archivos
State management oficial Pinia Redux/Zustand NgRx
Rendimiento generalExcelenteMuy buenoBueno
Soporte empresarialComunidad + sponsorsMetaGoogle

¿Dónde brilla Vue.js?

🖥️ Single Page Applications

Vue es ideal para SPAs complejas gracias a Vue Router, Pinia y el ecosistema Vite. Navegación fluida sin recargas de página.

Dashboard adminCRME-commerce

⚡ Widgets Interactivos

Gracias a su naturaleza progresiva, puedes embeber Vue en páginas existentes para añadir interactividad sin migrar el proyecto completo.

FormulariosBuscadoresCarousels

🌐 Apps con SSR / SSG

Con Nuxt.js generas páginas en el servidor o de forma estática para máximo SEO, ideal para blogs, e-commerce y portales de contenido.

BlogLanding pagesPortfolios

📱 Apps Móviles & Desktop

Con Capacitor, Ionic o Quasar, usa tu código Vue para generar apps nativas o híbridas para iOS, Android y escritorio con Electron.

iOS / AndroidPWAElectron