Entrada

Qué son y cómo usar directivas en Vue.js

En Vue.js, una directiva es un atributo especial que se añade a un elemento HTML para aplicar un comportamiento específico. Es decir, son atributos que vamos a usar en nuestro HTML, pero que no son estándar de HTML.

En su lugar Vue.js usará estos atributos para hacer su magia y extender el comportamiento de los elementos HTML.

Directivas Incorporadas en Vue.js

Vue.js incluye varias directivas incorporadas que cubren la mayoría de las necesidades en el desarrollo de aplicaciones.

Estas directivas siempre comienzan con v-, seguido del nombre de la directiva. Son las que usaremos en la mayoría de los casos.

Sobre todo v-bind y v-on, se usan tan frecuente que hasta tienen un alias más corto.

Enlace de Datos

Las directivas de enlace de datos permiten vincular datos y variables de Vue con atributos HTML o propiedades de componentes.

NombreDescripción
v-bindEnlaza dinámicamente atributos HTML o propiedades de componentes.
v-modelCrea un enlace bidireccional entre un input y una propiedad de datos.
v-textActualiza el textContent de un elemento con un valor proporcionado.
v-htmlActualiza el innerHTML de un elemento (¡cuidado con XSS!).
1
2
3
4
5
6
7
8
9
10
<template>
  <!-- Pone como atributo src el contenido de la variable imageURL -->
  <img :src="imageURL" alt="Imagen">

  <!-- Actualiza el `textContent` de un elemento -->
  <p v-text="message"></p>

  <!-- Actualiza el `innerHTML` de un elemento -->
  <p v-html="htmlContent"></p>
</template>

El uso de : es una abreviatura de v-bind. Por ejemplo, :src es equivalente a v-bind:src.

Renderizado Condicional

Las directivas de renderizado condicional permiten mostrar u ocultar elementos en función de una condición. Por ejemplo, para crear interfaces dinámicas que reaccionan al estado de la aplicación.

NombreDescripción
v-ifRenderiza condicionalmente un bloque de HTML si la expresión es verdadera.
v-else-ifRenderiza condicionalmente un bloque HTML si la expresión anterior es falsa.
v-elseRenderiza un bloque de HTML si todas las condiciones anteriores son falsas.
v-showMuestra u oculta un elemento basado en una condición (usando display: none).
1
2
<p v-if="showMessage">!Hola!</p>
<p v-else>No hay mensaje.</p>

Renderizado Iterativo

Las directivas de iteración permiten mostrar colecciones de datos de manera dinámica (por ejemplo, mostrar datos de un array).

NombreDescripción
v-forItera sobre una lista y renderiza un bloque de HTML para cada elemento.
1
2
3
<ul>
  <li v-for="item in items" :key="item.id">{{ item.name }}</li>
</ul>

Manejo de Eventos

Las directivas de manejo de eventos permiten escuchar eventos del DOM (como clics, entradas de teclado o cambios en un campo de texto), y ejecutar métodos en respuestas.

NombreDescripción
v-onEscucha eventos del DOM y ejecuta métodos cuando ocurren.
1
<button @click="handleClick">Haz clic</button>

El uso de @ es una abreviatura de v-on. Por ejemplo, @click es equivalente a v-on:click

Optimización

Las directivas de optimización están diseñadas para mejorar el rendimiento de la aplicación. Permiten controlar cómo Vue.js compila y renderiza los elementos, evitando actualizaciones innecesarias.

NombreDescripción
v-preOmite la compilación de Vue para un elemento y sus hijos.
v-cloakOculta el contenido hasta que Vue termine de compilar el componente.
v-onceRenderiza un elemento o componente solo una vez (no se actualiza).
v-memoMemoriza un subárbol del DOM para optimizar renderizados repetidos.
1
2
<div v-pre>{{ Esto no será compilado }}</div>
<div v-cloak>{{ message }}</div>
Esta entrada está licenciada bajo CC BY 4.0 por el autor.