Expresiones JavaScript en templates Vue
Clase 15 de 37 • Curso de Reactividad con Vue.js 3
Contenido del curso
Reactividad a profundidad
- 6

Paradigma reactivo: responsivo, resiliente y escalable
03:49 min - 7

Proxies: la clave de la reactividad Vue
06:29 min - 8

Creando tu primer mini framework reactivo
07:04 min - 9

Integrar Proxy para crear mini framework reactivo
06:06 min - 10

Refleja tu lógica mantenible con JavaScript
09:29 min - 11

Conceptos clave de reactividad: efectos, track y trigger
03:53 min - 12

Efectos trackers triggers: cómo Vue vincula datos
07:39 min
Templates de Vue.js
- 13
Templates de HTML en Vue.js: Mejores Prácticas Esenciales
00:21 min - 14

Estructura inicial de Platzy Commerce con Vue
06:52 min - 15

Expresiones JavaScript en templates Vue
Viendo ahora - 16

v-bind y clase reactiva en Vue.js
06:08 min - 17

v-show vs v-if en Vue: cuándo usar cada uno
08:53 min - 18

Directiva v-for para listas en Vue.js
08:14 min - 19

Eventos con v-on en templates de Vue
06:49 min
APIs internas de Vue.js
Segunda capa: componentes de Vue.js
- 25

Crear componentes reutilizables con Vue
06:56 min - 26

Cómo pasar datos de padre a hijo en Vue
14:13 min - 27
Creación de Componentes Personalizados en Aplicaciones Web
00:37 min - 28

Eventos personalizados en Vue: comunicar hijo a padre
04:27 min - 29

Eventos personalizados con Composition API
03:57 min - 30

Watchers en Vue Options API
08:53 min - 31

Watchers en Vue Composition API
08:19 min - 32

Computed properties vs watchers en Vue
05:17 min - 33

Computed en Vue Composition API
06:20 min - 34

Ciclos de vida en Vue: cuándo y cómo cargar datos
08:19 min - 35

Ciclos de vida en Composition API
06:03 min
Siguientes pasos
Aprende a transformar HTML estático en vistas dinámicas con Vue, usando datos reactivos y expresiones de JavaScript dentro del template. Verás cómo definir un objeto de producto, formatear precios con Intl, reemplazar contenido con dobles llaves y validar estados como el stock directamente en la vista. Todo con una sintaxis clara y lista para producción.
¿Cómo pasar de HTML estático a un template dinámico en Vue?
En Vue, el HTML que forma parte de la aplicación es dinámico. Dentro del template puedes escribir expresiones de JavaScript usando dobles llaves {{ }} y el motor las evalúa con acceso a la data reactiva.
- Reemplaza valores estáticos con expresiones: {{ product.name }}.
- Cualquier expresión válida de JavaScript funciona dentro de {{ }}.
- La data se define en
data()y regresa un objeto con el estado dinámico.
¿Cómo definir la data reactiva de un producto?
El estado mínimo incluye nombre, precio, stock, descripción y una galería de imágenes con su thumbnail. Un ejemplo basado en la explicación:
export default {
data() {
return {
product: {
name: 'Cámara',
price: 450_000, // guiones bajos para legibilidad en números grandes.
stock: 0,
content: `Descripción larga del producto en un template string.`,
images: [
{ image: 'camera.jpg', thumbnail: 'images/camera-thumb.jpg' },
{ image: 'camera2.jpg', thumbnail: 'images/camera2-thumb.jpg' }
]
}
}
}
}
priceadmite separadores con guion bajo y sigue siendo número entero.contentpuede venir de un template string para respetar saltos de línea.imageses un arreglo de objetos conimageythumbnail.
¿Cómo reemplazar contenido estático con dobles llaves?
- Título y etiquetas:
{{ product.name }}. - Precio:
{{ product.price }}. - Descripción:
{{ product.content }}.
Consejo práctico: todo lo que está en {{ }} se evalúa como JavaScript. Puedes encadenar métodos o validaciones.
¿Cómo formatear números y transformar texto en el template?
El formateo de precios mejora la lectura y se logra con la interfaz de JavaScript llamada Intl.
- Formateo local:
{{ new Intl.NumberFormat('es-CO').format(product.price) }}. - Cambio de separadores por configuración regional:
es-COusa punto para miles; en inglés se usan comas. - Transformación de texto:
{{ product.name.toUpperCase() }}para mostrar en upper case.
Ejemplo integrado:
<h2>{{ product.name.toUpperCase() }}</h2>
<p class="price">
{{ new Intl.NumberFormat('es-CO').format(product.price) }}
</p>
- Mejora la legibilidad de valores grandes.
- Permite mostrar variaciones sin mutar la data original.
¿Cómo validar estados como el stock desde el template?
Las expresiones permiten mostrar indicadores de disponibilidad directamente con un condicional.
<span class="stock">
{{ product.stock === 0 ? '😢' : '😎' }}
</span>
product.stock === 0muestra una carita triste si no hay unidades.- Cambia el valor del stock y la vista reacciona de inmediato.
- Es una validación simple y clara en el template.
¿Qué habilidades y conceptos clave se trabajan?
- Data reactiva con
data()para estado dinámico. - Uso de dobles llaves para evaluar JavaScript en el template.
- Formateo numérico con Intl.NumberFormat según localización.
- Transformaciones en línea como
toUpperCase(). - Condicionales en el template para señales de disponibilidad.
- Manejo de arreglos de imágenes con
imageythumbnail.
¿Te gustaría ver cómo llevar estas expresiones a atributos de HTML (por ejemplo, src, alt o clases dinámicas)? Deja tu comentario y cuéntame qué parte quieres profundizar primero.