v-bind y clase reactiva en Vue.js
Clase 16 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
06:49 min - 16

v-bind y clase reactiva en Vue.js
Viendo ahora - 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 dominar atributos dinámicos en Vue.js con confianza: enlaza HTML a datos reactivos con v-bind, usa el atajo : para escribir menos y aplica clases y estilos que respondan al estado de tu aplicación. Además, aprovecha expresiones de JavaScript para transformar valores, por ejemplo convertir un string a upper case en tiempo real.
¿Cómo enlazar atributos dinámicos con v-bind en Vue.js?
Con v-bind:atributo conectas un atributo HTML a una parte de tu data. Así, un img puede obtener su src desde product.images[0].image y el alt desde product.name, incluso aplicando transformaciones con expresiones de JavaScript.
<!-- Imagen principal: primera del arreglo -->
<img
v-bind:src="product.images[0].image"
v-bind:alt="product.name.toUpperCase()"
>
- Conecta
srcaproduct.images[0].imagepara mostrar la primera imagen. - Vuelve reactivo
altconproduct.namey transforma a upper case con una expresión. - Las expresiones en atributos son de JavaScript: se evalúan al vuelo.
- Al refrescar, verás la imagen y el
altactualizados según la data.
¿Qué atajo simplifica v-bind en atributos como alt?
Vue ofrece un atajo para v-bind: reemplaza v-bind:atributo por :atributo. Es equivalente y más conciso. Ideal cuando tienes muchos atributos dinámicos.
<!-- Misma lógica usando el atajo : -->
<img
:src="product.images[1].image"
:alt="product.name"
>
:altequivale av-bind:alt.:srcenlaza la segunda imagen conproduct.images[1].image.- Úsalo en todos los atributos que deban reaccionar a la data.
¿Cómo aplicar clases y estilos reactivos con v-bind:class y v-bind:style?
En Vue, los atributos class y style se tratan de forma especial: puedes pasar objetos. En class, cada clave es un nombre de clase y su valor es un booleano que decide si se aplica. En style, cada clave es una propiedad CSS y su valor el estilo reactivo.
¿Cómo activar una clase con un booleano?
<!-- Dos thumbnails; el activo depende de activeImage -->
<li :class="{ active: activeImage === 0 }"></li>
<li :class="{ active: activeImage === 1 }"></li>
- Define en la data
activeImage = 0para iniciar con el primero activo. - La clase active se agrega cuando la expresión es verdadera.
- Cambiar
activeImage = 1mueve la clase al segundo thumbnail.
¿Cómo definir un background image dinámico en thumbnails?
<!-- Estilo reactivo con background-image -->
<li
:class="{ active: activeImage === 0 }"
:style="{ backgroundImage: 'url(' + product.images[0].thumbnail + ')' }"
></li>
<li
:class="{ active: activeImage === 1 }"
:style="{ backgroundImage: 'url(' + product.images[1].thumbnail + ')' }"
></li>
- Pasa un objeto a style:
{ backgroundImage: valor }. - Construye la URL con concatenación para el background image.
- Replica el patrón para cada thumbnail cambiando el índice.
- Verás cómo la clase active y el fondo reaccionan al estado.
¿Te gustaría profundizar en más atributos reactivos o variaciones de thumbnails? Cuéntame tu caso en los comentarios y lo trabajamos juntos.