React Academy · Lezione

useTrail e useChain per le sequenze

Sfalsare le animazioni tra più elementi con useTrail e orchestrare le sequenze con useChain

Lezione 3 di 413 passaggi

useTrail e useChain per le sequenze è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento React Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso React Academy include 4 lezioni in totale.

useTrail per animazioni sfalsate

useTrail(count, config) crea count animazioni spring che si susseguono con un ritardo configurabile tra l'una e l'altra. Quando il trail ha inizio, il primo elemento si anima immediatamente, il secondo inizia poco dopo, il terzo ancora dopo e così via, creando un effetto a ventaglio o a cascata.

Valore restituito da useTrail

useTrail restituisce un array di oggetti spring, uno per ogni elemento del trail. Ogni animazione spring ha la stessa struttura (le stesse chiavi), ma avvia l'animazione con un offset temporale diverso. È possibile eseguire il mapping contemporaneamente sull'array del trail e sull'array degli elementi per eseguire il rendering di ogni elemento animato con l'animazione spring corrispondente.

Applicare il trail a un elenco

Esegua il rendering di un elenco con trail eseguendo il mapping sull'array del trail: trail.map((spring, i) => React.createElement(animated.div, { style: spring, key: items[i].id }, items[i].content)). Ogni animated.div riceve il proprio oggetto spring, quindi gli elementi si animano in sequenza. Le animazioni spring vengono eseguite nell'ordine degli indici: 0, 1, 2, 3...

Controllare la direzione del trail

useTrail supporta un pattern di commutazione per le animazioni in avanti e all'indietro. Passi uno stato booleano open per controllare la direzione: quando open è true, il trail passa da nascosto a visibile; quando è false, si inverte passando da visibile a nascosto. Il trail inverte automaticamente l'ordine: gli elementi escono nella sequenza inversa, ovvero l'ultimo a entrare è il primo a uscire.

Configurazione e temporizzazione del trail

L'oggetto config di useTrail è uguale a quello di useSpring: tension, friction, mass. Il ritardo tra gli elementi dipende dal tempo impiegato da ciascuna animazione spring per iniziare, determinato dalla fisica complessiva dell'animazione. Le animazioni spring più rigide, con tension maggiore, creano uno sfalsamento più rapido; quelle più delicate creano cascate più lunghe.

useSpringRef per useChain

useSpringRef() crea un ref da collegare a un hook spring tramite la relativa opzione ref. Il ref consente a useChain di controllare quando l'animazione spring ha inizio. Crei un ref per ogni animazione spring o trail che desidera mettere in sequenza: const springRef = useSpringRef(), quindi lo passi: useSpring({ ref: springRef, ... }).

useChain per l'orchestrazione sequenziale

useChain([ref1, ref2, ref3], [0, 0.5, 0.8]) mette in sequenza più animazioni spring o trail. Il primo argomento è un array di springRef nell'ordine in cui devono essere eseguiti. Il secondo argomento è un array di timestamp compresi tra 0 e 1, che indicano quando inizia ciascuna animazione spring come frazione dell'intervallo di tempo totale.

Significato dei timestamp di useChain

In useChain, timestamp come [0, 0.5] indicano che la spring 1 inizia allo 0% della sequenza e la spring 2 al 50%. Il terzo argomento opzionale è l'intervallo di tempo totale in millisecondi (1000 ms per impostazione predefinita). Quindi, con [0, 0.5] e 2000 ms, la spring 1 inizia a 0 ms e la spring 2 a 1000 ms.

Esempio pratico di useChain

Un pattern comune consiste nell'animare l'espansione di un contenitore (useSpring per le dimensioni) e quindi la comparsa graduale degli elementi al suo interno (useTrail per l'elenco). Colleghi i ref a entrambi, quindi utilizzi useChain([sizeRef, trailRef], [0, 0.5]) affinché il contenitore si espanda prima e gli elementi inizino a comparire a metà della sequenza. In questo modo si crea un'animazione di ingresso scenografica in due fasi.

Pattern per le transizioni di pagina

useChain è ideale per le transizioni di pagina. Quando si passa da una pagina all'altra, concateni l'animazione di uscita della pagina precedente con quella di ingresso della nuova pagina. L'uscita viene completata per prima (timestamp 0), quindi l'ingresso ha inizio (timestamp 0.6). In questo modo si crea un passaggio fluido anziché un cambio brusco.

Parallasse con useTrail

useTrail può creare effetti di scorrimento parallattici animando gli elementi a velocità diverse in base alla loro posizione nel trail. Gli elementi più in profondità nel trail iniziano più tardi e possono avere una configurazione diversa (tension inferiore), facendo sì che si muovano più lentamente. Questa temporizzazione basata sulla profondità simula l'effetto parallasse degli oggetti posti a distanze diverse.

Meccanismo di sfalsamento di useTrail

In che modo useTrail crea il ritardo sfalsato tra gli elementi dell'animazione?

Riepilogo della lezione: useTrail e useChain

useTrail(count, config) crea count animazioni spring che si susseguono, creando ingressi sfalsati per gli elenchi. Esegua il mapping contemporaneamente sul trail e sugli elementi per eseguire il rendering. useSpringRef() crea ref che useChain utilizza per mettere le animazioni in sequenza. useChain([ref1, ref2], [0, 0.5]) orchestra più animazioni spring con timestamp frazionari. Insieme, consentono di creare sequenze complesse in più fasi, come le animazioni di ingresso che prima espandono e poi rivelano gli elementi.

Gratis per iniziare

Impara React con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
88
Lezioni
324

Domande Frequenti

La lezione «useTrail e useChain per le sequenze» è gratuita?

Sì — il testo completo di «useTrail e useChain per le sequenze» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso React Academy, passa a CoddyKit PRO. Il corso React Academy include 4 lezioni in totale.

Cosa imparerò in «useTrail e useChain per le sequenze»?

Sfalsare le animazioni tra più elementi con useTrail e orchestrare le sequenze con useChain Eserciti React Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare React Academy?

Non è richiesta alcuna esperienza precedente. React Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «useTrail e useChain per le sequenze»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione React Academy?

Sì. Ogni lezione React Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Fondamenti di React Spring: hook useSpring
  2. Componenti animati e interpolazione degli stili
  3. useTrail e useChain per le sequenze
  4. Animazioni basate sui gesti con use-gesture
← Torna a React Academy