No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Transiciones

6/23
Recursos

Aportes 18

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Hay otro componente que se llama transition-group, creado especialmente para listas, o elementos renderizados con v-for. Estos permiten darle un comportamiento igual el expuesto por la profe pero a los elementos que se insertan o se remueven del DOM. Vale la pena darle una mirada

Recuerden que v-if desmonta o remueve completamente el elemento HTML del DOM.

y v-show solo usa display:none esto es muy importante tenerlo en cuenta para temas de performance, SEO y más.

El codigo de la clase para facil acceso y que se concentren mas en la clase y definiciones.

desde App.vue

<template>
  <button @click="show = !show">Menu</button>
  <transition name="fade">
    <Menu v-show="show" />
  </transition>
</template>

<script>
import Menu from "./components/vMenu.vue";
export default {
  name: "App",
  components: { Menu },
  data() {
    return {
      show: false,
    };
  },
};
</script>

AHora la parte de los estilos:

.fade-enter-from,
.fade-leave-to {
  opacity: 0;
}

.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.5s ease;
}

y desde el componente Menu.vue

<template>
  <ul>
    <li>Opcion 1</li>
    <li>Opcion 2</li>
    <li>Opcion 3</li>
  </ul>
</template>

si a alguno de ustedes como a mi les saca este error:
error Component name “Menu” should always be multi-word vue/multi-word-component-names

deben ir al archivo .eslintrc.js y en la key rules:{} agregar:

"vue/multi-word-component-names": "off",

Vaya, qué interesante componente de Vue JS, lleva la forma de usar CSS a algo distinto.

Por cierto, Platzi tiene 2 cursos de animaciones con CSS:

  1. Curso de Animaciones con CSS
  2. Curso Práctico de Maquetación y Animaciones con CSS

Nunca está de más ver otro tipo de explicaciones
https://styde.net/animaciones-transiciones-en-vue-js/

**Transiciones **
Permite aplicar css al momento de determinar si un elemento aparece o desaparece en pantalla.

Por ejemplo: Utilizamos la transición para agregar un desvanecimiento al clickear el botón que muestra (U oculta) el menú.

La etiqueta es :

<transition name="fade"> </transition> 

++Es importante aclarar el nombre de la transicion ++

Para empezar a utilizar las animaciones, VueJS espera que escribas unas clases con determinados nombres específicos:

En primer lugar se utiliza el nombre declarado en la etiqueta transition.

.fade-enter : elemento que entra
.fade-leave: elemento que sale

Hay tres modificadores:

  • Cuando inicia la transición: From
  • El momento en el que sucede la transición: Active
  • Cuando termina: To
<style>
	.fade-enter-from{
		css style
	}
</style>

Los modificadores que tiene una trancisión es:

  • from: cuando se inicia la transición
  • to: cuando se termina la transición
  • active: cuando se está ejecutando la transición

Para que funcione la transición, se debe agregar la clase .fade-enter-active o .fade-leave-active a los elementos que se quieren animar.

  • fade-enter-active: cuando se inicia la transición
  • fade-leave-active: cuando se termina la transición

Les recomiendo mucho usar TailwindCSS con Vue, tiene una integración super buena, incluso puedes animar esta transition de manera sencilla ejemplo:

<transition
    enter-active-class="duration-300 ease-out"
    enter-from-class="transform opacity-0"
    enter-to-class="opacity-100"
    leave-active-class="duration-200 ease-in"
    leave-from-class="opacity-100"
    leave-to-class="transform opacity-0"
  >
    <TheMenu v-show="show"></TheMenu>
  </transition>

Le coloque Font-size: 100px y si que se noto xD

No lo veo

Acá pueden encontrar más ejemplos como también un preview de los mismos
https://vuejs.org/guide/built-ins/transition.html#css-based-transitions

Estuve revisando la documentación oficial de Vue.js, al parecer, la nueva sintaxis recomendada para el manejo de el estado de un componente es la siguiente:

<script setup>
import { ref } from 'vue';
const show = ref(true);
</script>

<template>
  <button @click="show = !show">Menú</button>
</template> 

wooo me voló la cabeza la facilidad con la que se pueden agregar animaciones y creo que están aplicando muy bien BEM.

Los componentes de Transition, TransitionGroup tambien escuchan eventos para el manejo del estado en transiciones, por si no fuera poco y tambien puedes incorporar animaciones de librerias como Gsap, Bounce, etc. Vue es Cool 😃

Estoy totalmente impresionado que vue tengaun espacio para las transiciones. En React y Angular no pasa

Y si pasa como lo hace Vue, me gustaría saberlo 🌟 .

He usado Vue js para proyectos universitarios mayormente, asi que lo he aprendido un poco a los golpes y ver ahora tantos componentes o features que tiene Vue por defecto que facilitan la vida me estan dejando loco

No tenía idea de este componente, nos ayudará mucho en nuestros futuros proyectos.