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 →
Gruppo LottieFiles7 minuti di lettura·Dal team ExodeUI

Ottimizzazione di Lottie in React: riduzione delle dimensioni del bundle e del consumo della CPU

Scopri come ottimizzare le animazioni Lottie nelle app React, ridurre l'impatto del bundle JavaScript e migrare JSON statici su macchine a stati ExodeUI interattive.

Sintesi e definizione

Punto chiave

Eseguire Lottie in React utilizzando lottie-web o lottie-react significa caricare un player che analizza l'animazione JSON e la renderizza fotogramma per fotogramma. Per piccole animazioni decorative, il semplice CSS è spesso più leggero; per quelli interattivi, un runtime basato sullo stato come ExodeUI o Rive potrebbe adattarsi meglio. Misura le dimensioni del bundle e la CPU prima e dopo qualsiasi modifica.

L'impatto dei Core Web Vitals di Lottie

Le animazioni Lottie attivano spesso regressioni Total Blocking Time (TBT) e Largest Contentful Paint (LCP) quando eseguite durante il caricamento iniziale della pagina. Poiché Lottie valuta le trasformazioni della matrice su ogni frame in JavaScript, i dispositivi mobili a basso consumo subiscono un consumo significativo della batteria e cali di frame.

Estratto di implementazione in produzione

Implementazione del componente interattivo
// 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; } }
*/

Guide ed esempi correlati

Progetta la UI interattiva una volta. Pubblica lo stesso file.

Crea stati, fisica delle molle e logica in modo visivo in ExodeUI e riproduci lo stesso file in React, SwiftUI, Flutter e altro. Inizia gratis.

Provalo gratis