useTrail e useChain para sequências
Escale animações entre vários elementos com useTrail e orquestre sequências com useChain.
useTrail e useChain para sequências é uma aula grátis de React Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.
useTrail para animações escalonadas
useTrail(count, config) cria count molas que são animadas em sequência, com um atraso configurável entre cada uma. Quando a trilha começa, o primeiro item é animado imediatamente, o segundo começa um pouco depois, o terceiro depois dele e assim por diante — criando um efeito de leque ou cascata.
Valor retornado por useTrail
useTrail retorna uma matriz de objetos de mola, um para cada item da trilha. Cada mola tem a mesma estrutura (as mesmas chaves), mas começa sua animação em um momento diferente. Você percorre simultaneamente a matriz da trilha e a matriz de itens para renderizar cada item animado com sua mola correspondente.
Aplicar uma trilha a uma lista
Renderize uma lista com trilha percorrendo a matriz da trilha: trail.map((spring, i) => React.createElement(animated.div, { style: spring, key: items[i].id }, items[i].content)). Cada animated.div recebe seu próprio objeto de mola, então os itens são animados em sequência. As molas são executadas na ordem dos índices: 0, 1, 2, 3...
Controlar a direção da trilha
useTrail aceita um padrão de alternância para animações para frente e para trás. Passe um estado booleano open para controlar a direção: quando open é verdadeiro, a trilha é animada de oculta para visível; quando é falso, ela é revertida de visível para oculta. A trilha inverte a ordem automaticamente — os itens saem na sequência inversa (o último a entrar é o primeiro a sair).
Configuração e tempo da trilha
O objeto de configuração de useTrail é igual ao de useSpring: tensão, atrito e massa. O atraso entre os itens é determinado pelo tempo que cada mola leva para começar, que é controlado pela física geral da mola. Molas mais rígidas, com maior tensão, criam um escalonamento mais rápido; molas mais suaves criam cascatas mais longas.
useSpringRef para useChain
useSpringRef() cria uma referência que você vincula a um recurso de mola por meio da opção ref. A referência permite que useChain controle quando essa mola começa. Você cria uma referência para cada mola ou trilha que deseja sequenciar: const springRef = useSpringRef() e depois a passa: useSpring({ ref: springRef, ... }).
useChain para orquestração sequencial
useChain([ref1, ref2, ref3], [0, 0.5, 0.8]) organiza várias molas ou trilhas em sequência. O primeiro argumento é uma matriz de springRefs na ordem em que devem ser executadas. O segundo argumento é uma matriz de marcas de tempo entre 0 e 1, indicando quando cada mola começa como uma fração do período total.
Significado das marcas de tempo de useChain
Em useChain, marcas de tempo como [0, 0.5] significam que a mola 1 começa em 0% da sequência e a mola 2 começa em 50% dela. O terceiro argumento opcional é o período total em milissegundos (o padrão é 1000 milissegundos). Portanto, com [0, 0.5] e 2000 milissegundos, a mola 1 começa em 0 milissegundo e a mola 2 começa em 1000 milissegundos.
Exemplo prático de useChain
Um padrão comum é animar a expansão de um contêiner (useSpring para o tamanho) e depois animar o aparecimento gradual dos itens internos (useTrail para a lista). Vincule referências a ambos e use useChain([sizeRef, trailRef], [0, 0.5]) para que o contêiner se expanda primeiro e os itens apareçam gradualmente na metade do processo. Isso cria uma animação de entrada cinematográfica em duas fases.
Padrões de transição de página
useChain é ideal para transições de página. Ao navegar entre páginas, encadeie a animação de saída da página antiga com a animação de entrada da nova página. A saída é concluída primeiro (marca de tempo 0) e, em seguida, a entrada começa (marca de tempo 0,6). Isso cria uma transição suave em vez de uma troca abrupta.
Paralaxe com useTrail
useTrail pode criar efeitos de rolagem de paralaxe ao animar itens em velocidades diferentes, com base na posição deles na trilha. Os itens mais ao fundo da trilha começam mais tarde e podem ter uma configuração diferente (menor tensão), fazendo com que se movam mais lentamente. Esse tempo baseado na profundidade simula o efeito de paralaxe de objetos a diferentes distâncias.
Mecanismo de escalonamento de useTrail
Como useTrail cria o atraso escalonado entre os itens da animação?
Resumo da lição: useTrail e useChain
useTrail(count, config) cria count molas que são animadas em sequência, criando entradas escalonadas para listas. Percorra simultaneamente a trilha e os itens para renderizá-los. useSpringRef() cria referências que useChain usa para organizar a sequência. useChain([ref1, ref2], [0, 0.5]) orquestra várias molas com marcas de tempo fracionárias. Juntos, eles permitem sequências complexas em várias fases, como animações de expandir e depois revelar.
Perguntas Frequentes
A aula “useTrail e useChain para sequências” é grátis?
Sim — o texto completo de “useTrail e useChain para sequências” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.
O que vou aprender em “useTrail e useChain para sequências”?
Escale animações entre vários elementos com useTrail e orquestre sequências com useChain. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar React Academy?
Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “useTrail e useChain para sequências”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de React Academy?
Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos do React Spring: hook useSpring
- Componentes animados e interpolação de estilos
- useTrail e useChain para sequências
- Animações orientadas por gestos com use-gesture