Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
Cluster LottieFiles7 minutos de leitura·Pela equipe ExodeUI

Otimizando Lottie em React: Reduzindo o tamanho do pacote e o consumo de CPU

Descubra como otimizar animações Lottie em aplicativos React, reduzir o impacto do pacote JavaScript e migrar JSONs estáticos para máquinas de estado ExodeUI interativas.

Resumo direto e definição

Ponto principal

Executar Lottie em React usando lottie-web ou lottie-react significa carregar um player que analisa a animação JSON e a renderiza quadro a quadro. Para pequenas animações decorativas, o CSS simples costuma ser mais leve; para os interativos, um tempo de execução baseado em estado, como ExodeUI ou Rive, pode ser mais adequado. Meça o tamanho do pacote e a CPU antes e depois de qualquer alteração.

O impacto do Core Web Vitals de Lottie

As animações Lottie frequentemente acionam regressões de Total Blocking Time (TBT) e Largest Contentful Paint (LCP) quando executadas durante o carregamento inicial da página. Como o Lottie avalia as transformações de matriz em cada quadro no JavaScript, os dispositivos móveis de baixo consumo de energia sofrem consumo significativo de bateria e quedas de quadros.

Trecho de implementação em produção

Implementação do componente interativo
// A small decorative "like" pop in plain CSS instead of a Lottie file.
// No player needed; measure your own bundle and CPU before and after.
export function LikeHeart({ active }) {
  return (
    <svg className={active ? 'heart heart--active' : 'heart'} viewBox="0 0 24 24" aria-hidden="true">
      <path d="M12 21s-7-4.4-9.3-8.6C1 9.2 3 5.5 6.6 5.5c2 0 3.4 1.1 4.4 2.5 1-1.4 2.4-2.5 4.4-2.5 3.6 0 5.6 3.7 3.9 6.9C19 16.6 12 21 12 21z" />
    </svg>
  );
}

/* CSS
.heart { fill: #ccc; transition: fill 150ms; }
.heart--active { fill: #ff4a1c; animation: pop 320ms cubic-bezier(.2,1.6,.4,1); }
@keyframes pop { 0% { transform: scale(1); } 50% { transform: scale(1.25); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .heart--active { animation: none; } }
*/

Guias e exemplos relacionados

Projete a UI interativa uma vez. Entregue o mesmo arquivo.

Crie estados, física de molas e lógica visualmente no ExodeUI e reproduza o mesmo arquivo em React, SwiftUI, Flutter e outros. Comece grátis.

Experimente grátis