Animaciones CSS3 con transiciones en Vue
Clase 38 de 53 • Curso Profesional de Vue.js 2
Contenido del curso
CLI y Dev Tools
- 3

Instalación de Vue.js: Node, Dev Tools y CLI
06:13 min - 4

Crear una aplicación Vue con CLI y webpack
12:49 min - 5

Cómo funciona webpack.config.js
10:38 min - 6

Babel: transpilador de JavaScript moderno
05:06 min - 7

ESLint con Standard JS: linteo automático en webpack
15:34 min - 8

Configuración de Sass y Bulma en Vue
06:18 min - 9

Cómo configurar Pug en Vue con webpack
04:23 min - 10
Diseño de Mockups: Práctica y Colaboración en Comunidad
00:20 min - 11
Creación de Vistas con Mockups y Vue.js
00:32 min
Manipulación del DOM
- 12

Expresiones en Vue: sintaxis doble llave
03:49 min - 13

Diferencia entre v-show y v-if en el DOM
06:22 min - 14

Qué es data binding en Vue.js
04:11 min - 15

Computed properties en Vue.js: cómo crearlas
04:13 min - 16

Qué son los watchers de Vue
02:25 min - 17

Eventos Vue: directiva v-on y métodos format
06:12 min - 18

Cómo construir una interfaz de búsqueda completa en Vue
19:03 min - 19
Manipulación del DOM con Vue.js: Práctica y Ejercicios
03:00 min
REST y HTTP
Sistema de Componentes
- 23

Cómo crear componentes en Vue
08:46 min - 24

Componentes Layout en Vue con Bulma
09:50 min - 25

Reactividad en Vue: $set y Object.assign
06:14 min - 26

Hooks del ciclo de vida en Vue.js
05:38 min - 27

Comunicación padre-hijo con props en Vue
23:27 min - 28

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

Slots: HTML dinámico en componentes Vue
13:42 min - 30

Plugin Event Bus: comunicar componentes sin relación en Vue
19:19 min
Vue Router
Extendiendo VueJS
Clases, Animaciones y Transiciones36
Vuex
- 39

Cómo Vuex centraliza estados en Vue
03:41 min - 40

Instalación de Vuex con estado único
17:32 min - 41

Cómo usar mutations y commit en Vuex
08:16 min - 42

Getters de Vuex: mapGetters y store sincronizado
07:35 min - 43

Cómo dispatch ejecuta actions asincrónicas en ViewX
07:54 min - 44

Instalación de Viewex en Platzi Music
26:37 min
Nuxt.js
Deploy a Producción con Now
Conclusiones
Bonus
Domina cómo unir animaciones y transiciones de CSS3 con Vue.js para crear interfaces fluidas y claras. Aprenderás a usar el elemento transition, a nombrar correctamente las clases como move-enter-active y move-leave-active, y a controlar cada etapa con las clases que Vue inyecta automáticamente.
¿Cómo integrar animaciones CSS3 y transiciones en Vue.js?
Integrar estilos con Vue es directo cuando entiendes el flujo: defines clases en tu Sass/CSS y Vue aplica esas clases en las etapas de entrada y salida. Así, puedes mover un elemento en los ejes X, Y o Z con transform y suavizar cambios con transition.
¿Qué clases CSS3 se crean y para qué sirven?
Se configuran dos grupos de reglas: las activas y las iniciales/finales.
- Clases activas: controlan el estado en movimiento con transform: translateX(0) y transition: all 0.3s linear. Permiten que el cambio sea suave.
- Clases de entrada/salida: colocan el elemento fuera de pantalla con translateX(100%) para que luego entre o salga.
Ejemplo en main.scss:
.move-enter-active,
.move-leave-active {
transform: translateX(0);
transition: all 0.3s linear;
}
.move-enter,
.move-leave-2 {
transform: translateX(100%);
}
Puntos clave: - transform mueve el elemento en los ejes X, Y y Z. - translate X a 0 lo posiciona visible en el eje X. - transition aplica la animación cuando cambian propiedades CSS. - 0.3s y lineal definen duración y aceleración.
¿Cómo mapea Vue.js las etapas de transición?
Vue.js inyecta clases por etapa, y tú las "interceptas" con tus reglas CSS. Las clases mencionadas son: v-enter, v-enter-active, v-enter-2, v-leave, v-leave-active y v-leave-2.
- Entrada: v-enter (empieza), v-enter-active (mientras está activa), v-enter-2 (cuando se está yendo de esa fase).
- Salida: v-leave (empieza a irse), v-leave-active (activa), v-leave-2 (finaliza).
La convención de nombres une tu nombre de transición con la etapa: primero el nombre, luego el estado. Ejemplo: move-enter-active referencia a la fase activa de entrada.
¿Qué hace el componente transition en Vue.js y cómo se aplica?
El elemento personalizado transition de Vue envuelve el contenido al que quieres aplicar los efectos. Al pasarle un nombre, Vue sabe qué prefijo usar para inyectar las clases de cada etapa.
¿Cómo envolver componentes con el elemento transition?
En search.vue, se aplican transiciones a dos componentes: loader y pm-notification. Se usa el nombre "move" porque tus clases están definidas con ese prefijo: move-enter-active, move-leave-active, move-enter y move-leave-2.
<template>
<div>
<transition name="move">
<loader v-if="loading" />
</transition>
<transition name="move">
<pm-notification v-if="showMessage" />
</transition>
</div>
</template>
Claves prácticas: - name="move" conecta el componente con tus clases .move-…. - Envuelve cada componente que quieras animar con transition. - Controla la visibilidad con condiciones como v-if para disparar la transición.
¿Qué resultados y recursos se mencionan?
Al probar en el navegador, se muestra un flujo claro:
- Búsqueda de una canción (por ejemplo, de los Rolling Stones): el loader entra desde fuera de la pantalla hacia adentro con una animación suave.
- Si no hay resultados: el loader sale y entra el mensaje de no se encontraron resultados.
Más opciones: - Transition Group de Vue.js también existe para listas. Queda como desafío para explorar y compartir avances. - Para profundizar en animaciones: se menciona un curso sobre Animaciones para la Web en Platzi para crear efectos más sofisticados y reutilizables en cualquier proyecto.
¿Ya aplicaste estas transiciones o exploraste Transition Group? comparte tu experiencia y dudas en los comentarios.