useTrail y useChain para secuencias
Escalonar animaciones entre varios elementos con useTrail y coordinar secuencias con useChain
useTrail y useChain para secuencias es una lección gratuita de React Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de React Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de React Academy incluye 4 lecciones en total.
useTrail para animaciones escalonadas
useTrail(count, config) crea count springs que se animan en secuencia, con un retraso configurable entre cada uno. Cuando comienza el trail, el primer elemento se anima de inmediato, el segundo comienza un poco después, el tercero después de ese y así sucesivamente, lo que crea un efecto de abanico o cascada.
Valor devuelto por useTrail
useTrail devuelve un array de objetos spring, uno por cada elemento del trail. Cada spring tiene la misma estructura (las mismas claves), pero comienza su animación con un desfase temporal diferente. Puede recorrer simultáneamente el array del trail y el array de elementos para renderizar cada elemento animado con su spring correspondiente.
Aplicar un trail a una lista
Renderice una lista con trail recorriendo el array del trail: trail.map((spring, i) => React.createElement(animated.div, { style: spring, key: items[i].id }, items[i].content)). Cada animated.div recibe su propio objeto spring, por lo que los elementos se animan en secuencia. Los springs se ejecutan en orden de índice: 0, 1, 2, 3...
Controlar la dirección del trail
useTrail admite un patrón de alternancia para animar hacia delante y hacia atrás. Pase un estado booleano open para controlar la dirección: cuando open es true, el trail se anima de oculto a visible; cuando es false, invierte el recorrido de visible a oculto. El trail invierte el orden automáticamente: los elementos desaparecen en secuencia inversa (el último en entrar es el primero en salir).
Configuración y tiempos del trail
El objeto de configuración de useTrail es el mismo que el de useSpring: tension, friction, mass. El retraso entre elementos viene determinado por el tiempo que tarda cada spring en comenzar, que depende de la física general del spring. Los springs más rígidos, con mayor tension, crean un escalonamiento más rápido; los springs más suaves crean cascadas más largas.
useSpringRef para useChain
useSpringRef() crea una ref que se adjunta a un hook de spring mediante su opción ref. La ref permite que useChain controle cuándo comienza ese spring. Cree una ref por cada spring o trail que quiera secuenciar: const springRef = useSpringRef(); después, pásela: useSpring({ ref: springRef, ... }).
useChain para la orquestación secuencial
useChain([ref1, ref2, ref3], [0, 0.5, 0.8]) secuencia varios springs o trails. El primer argumento es un array de springRefs en el orden en que deben reproducirse. El segundo argumento es un array de marcas de tiempo entre 0 y 1 que indica cuándo comienza cada spring como fracción del intervalo de tiempo total.
Significado de las marcas de tiempo de useChain
En useChain, marcas de tiempo como [0, 0.5] significan que el spring 1 comienza en el 0 % de la secuencia y el spring 2 comienza en el 50 %. El tercer argumento opcional es el intervalo de tiempo total en milisegundos (1000 ms de forma predeterminada). Por tanto, con [0, 0.5] y 2000 ms, el spring 1 comienza en 0 ms y el spring 2 en 1000 ms.
Ejemplo práctico de useChain
Un patrón habitual consiste en animar la expansión de un contenedor (useSpring para el tamaño) y después animar la aparición gradual de los elementos interiores (useTrail para la lista). Adjunte refs a ambos y utilice useChain([sizeRef, trailRef], [0, 0.5]) para que el contenedor se expanda primero y los elementos aparezcan gradualmente a mitad del proceso. Esto crea una animación de entrada cinematográfica en dos fases.
Patrones de transición entre páginas
useChain es ideal para las transiciones entre páginas. Al navegar entre páginas, encadene la animación de salida de la página anterior con la animación de entrada de la nueva. La salida se completa primero (marca de tiempo 0) y después comienza la entrada (marca de tiempo 0.6). Esto crea un cambio fluido en lugar de una sustitución brusca.
Parallax con useTrail
useTrail puede crear efectos de desplazamiento parallax al animar los elementos a distintas velocidades según su posición en el trail. Los elementos más profundos del trail comienzan más tarde y pueden tener una configuración diferente (menor tension), lo que hace que se muevan más despacio. Este tiempo basado en la profundidad simula el efecto parallax de objetos situados a distintas distancias.
Mecanismo de escalonamiento de useTrail
¿Cómo crea useTrail el retraso escalonado entre los elementos de la animación?
Resumen de la lección: useTrail y useChain
useTrail(count, config) crea count springs que se animan en secuencia, lo que produce entradas de listas escalonadas. Recorra trail y los elementos simultáneamente para renderizarlos. useSpringRef() crea refs que useChain utiliza para secuenciar las animaciones. useChain([ref1, ref2], [0, 0.5]) orquesta varios springs con marcas de tiempo fraccionarias. Juntos permiten crear secuencias complejas de varias fases, como animaciones que primero expanden y después muestran el contenido.
Preguntas frecuentes
¿La lección «useTrail y useChain para secuencias» es gratis?
Sí — el texto completo de «useTrail y useChain para secuencias» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de React Academy, actualiza a CoddyKit PRO. El curso de React Academy incluye 4 lecciones en total.
¿Qué aprenderé en «useTrail y useChain para secuencias»?
Escalonar animaciones entre varios elementos con useTrail y coordinar secuencias con useChain Practicas React Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar React Academy?
No se requiere experiencia previa. React Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «useTrail y useChain para secuencias»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de React Academy?
Sí. Cada lección de React Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Fundamentos de React Spring: hook useSpring
- Componentes animados e interpolación de estilos
- useTrail y useChain para secuencias
- Animaciones controladas por gestos con use-gesture