Introducción
La sintaxis de plantillas en Vue.js es una característica poderosa que permite a los desarrolladores crear interfaces de usuario dinámicas y reactivas de manera sencilla. En este tema, aprenderás cómo utilizar la sintaxis de plantillas para enlazar datos, manejar eventos y aplicar lógica condicional en tus aplicaciones Vue.
Contenido
- Interpolación de Datos
- Directivas de Vue
- Expresiones en Plantillas
- Atributos HTML y Clases
- Eventos
- Interpolación de Datos
La interpolación de datos es la forma más básica de enlazar datos en Vue.js. Utiliza la sintaxis de doble llave {{ }} para mostrar datos dinámicos en el DOM.
<div id="app">
<p>{{ message }}</p>
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Hola, Vue.js!'
}
});
</script>Explicación:
{{ message }}: Interpola el valor demessageen el DOM.data: { message: 'Hola, Vue.js!' }: Define el datomessageen la instancia de Vue.
- Directivas de Vue
Las directivas son atributos especiales con el prefijo v- que proporcionan funcionalidad adicional a los elementos del DOM.
v-bind
La directiva v-bind se utiliza para enlazar atributos de HTML a datos de Vue.
<div id="app">
<a v-bind:href="url">Visita Vue.js</a>
</div>
<script>
new Vue({
el: '#app',
data: {
url: 'https://vuejs.org'
}
});
</script>Explicación:
v-bind:href="url": Enlaza el atributohrefdel enlace al datourl.
v-model
La directiva v-model se utiliza para enlazar datos bidireccionalmente con elementos de formulario.
<div id="app">
<input v-model="message" placeholder="Escribe algo">
<p>{{ message }}</p>
</div>
<script>
new Vue({
el: '#app',
data: {
message: ''
}
});
</script>Explicación:
v-model="message": Enlaza el valor del input con el datomessage.
- Expresiones en Plantillas
Las expresiones en plantillas permiten realizar operaciones simples dentro de la interpolación.
<div id="app">
<p>{{ number + 1 }}</p>
<p>{{ isActive ? 'Activo' : 'Inactivo' }}</p>
</div>
<script>
new Vue({
el: '#app',
data: {
number: 5,
isActive: true
}
});
</script>Explicación:
{{ number + 1 }}: Realiza una operación aritmética.{{ isActive ? 'Activo' : 'Inactivo' }}: Utiliza una expresión condicional.
- Atributos HTML y Clases
v-bind:class
La directiva v-bind:class se utiliza para enlazar clases CSS dinámicamente.
<div id="app">
<div v-bind:class="{ active: isActive }">Contenido</div>
</div>
<script>
new Vue({
el: '#app',
data: {
isActive: true
}
});
</script>Explicación:
v-bind:class="{ active: isActive }": Añade la claseactivesiisActiveestrue.
v-bind:style
La directiva v-bind:style se utiliza para enlazar estilos en línea dinámicamente.
<div id="app">
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">Texto Estilizado</div>
</div>
<script>
new Vue({
el: '#app',
data: {
activeColor: 'red',
fontSize: 14
}
});
</script>Explicación:
v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }": Aplica estilos en línea basados en los datosactiveColoryfontSize.
- Eventos
v-on
La directiva v-on se utiliza para manejar eventos del DOM.
<div id="app">
<button v-on:click="greet">Saludar</button>
</div>
<script>
new Vue({
el: '#app',
methods: {
greet: function() {
alert('Hola, Vue.js!');
}
}
});
</script>Explicación:
v-on:click="greet": Asocia el eventoclickdel botón al métodogreet.
Ejercicios Prácticos
Ejercicio 1: Interpolación de Datos
Instrucciones:
- Crea una instancia de Vue con un dato llamado
name. - Muestra el valor de
nameen un párrafo utilizando la interpolación de datos.
Solución:
<div id="app">
<p>{{ name }}</p>
</div>
<script>
new Vue({
el: '#app',
data: {
name: 'Juan'
}
});
</script>Ejercicio 2: Enlazando Atributos
Instrucciones:
- Crea una instancia de Vue con un dato llamado
imageUrl. - Enlaza el atributo
srcde una imagen al datoimageUrl.
Solución:
<div id="app">
<img v-bind:src="imageUrl" alt="Imagen">
</div>
<script>
new Vue({
el: '#app',
data: {
imageUrl: 'https://via.placeholder.com/150'
}
});
</script>Ejercicio 3: Manejo de Eventos
Instrucciones:
- Crea una instancia de Vue con un método llamado
showAlert. - Asocia el evento
clickde un botón al métodoshowAlert.
Solución:
<div id="app">
<button v-on:click="showAlert">Mostrar Alerta</button>
</div>
<script>
new Vue({
el: '#app',
methods: {
showAlert: function() {
alert('¡Alerta mostrada!');
}
}
});
</script>Conclusión
En esta sección, has aprendido los conceptos básicos de la sintaxis de plantillas en Vue.js, incluyendo la interpolación de datos, el uso de directivas, expresiones en plantillas, y el manejo de eventos. Estos fundamentos te permitirán crear interfaces de usuario dinámicas y reactivas. En el próximo módulo, profundizaremos en la vinculación de datos y cómo aprovechar al máximo las capacidades reactivas de Vue.js.
Curso de Vue.js
Módulo 1: Introducción a Vue.js
- ¿Qué es Vue.js?
- Configuración del Entorno de Desarrollo
- Creando Tu Primera Aplicación Vue
- Entendiendo la Instancia de Vue
Módulo 2: Conceptos Básicos de Vue.js
- Sintaxis de Plantillas
- Vinculación de Datos
- Propiedades Computadas y Observadores
- Vinculación de Clases y Estilos
- Renderizado Condicional
- Renderizado de Listas
Módulo 3: Componentes de Vue.js
- Introducción a los Componentes
- Props y Eventos Personalizados
- Slots
- Componentes Dinámicos y Asíncronos
- Comunicación entre Componentes
Módulo 4: Vue Router
- Introducción a Vue Router
- Configuración de Vue Router
- Rutas Dinámicas
- Rutas Anidadas
- Guardias de Navegación
Módulo 5: Gestión de Estado con Vuex
- Introducción a Vuex
- Estado, Getters, Mutaciones y Acciones
- Módulos en Vuex
- Usando Vuex en Componentes
- Patrones Avanzados de Vuex
Módulo 6: Directivas de Vue.js
Módulo 7: Plugins de Vue.js
Módulo 8: Pruebas en Vue.js
- Pruebas Unitarias con Vue Test Utils
- Pruebas de Extremo a Extremo con Cypress
- Simulación de Dependencias
Módulo 9: Conceptos Avanzados de Vue.js
- Funciones de Renderizado y JSX
- Renderizado del Lado del Servidor (SSR) con Nuxt.js
- API de Composición de Vue 3
- Optimización del Rendimiento
Módulo 10: Construcción y Despliegue de Aplicaciones Vue.js
- Construcción para Producción
- Despliegue de Aplicaciones Vue.js
- Integración y Despliegue Continuos (CI/CD)
