Nesse caso, as etapas são mais ou menos assim:
- Animação começa
- JS serializa as informações da animação e as envia pela ponte.
- No outro extremo, o sistema operacional recebe essas informações e executa a animação nativamente.
É isso aí! Muito mais leve para o encadeamento JS agora. Não mais requestAnimationFrame corrida.
No entanto, ele tem sua própria parcela de prós e contras.
Prós:
- Animações mais rápidas
- Encadeamento JS sem bloqueio
- Ponte menos inchada
Contras:
- Menos controle sobre as animações (o JS não consegue ver o que está acontecendo na tela depois que a animação “automática” é iniciada)
- Menos propriedades para manipular – o driver nativo não suporta todas as propriedades a serem animadas, como
widthouheightnão é nativamente animado, masopacityetransformé.
Em muitos casos, você descobrirá que pode solucionar um conjunto diferente de animações usando o useNativeDriver: true para criar um efeito semelhante que não pode ser alcançado sem definir useNativeDriver: false. A equipe do React Native está trabalhando para adicionar suporte a mais propriedades enquanto falamos, mas por enquanto, acredito que seja ótimo no momento.
Conclusão
Este artigo mostrou como as animações do React Native realmente funcionam sob o capô e por que é bonito. O que você acha deste artigo? Diga-me conectando comigo no meu Instagram e Twitter contas! Novo no React Native? Comece a aprender codedamn – uma plataforma para os desenvolvedores aprenderem e se conectarem!
Paz!