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 →
LottieFiles-Cluster7 Min. gelesen·Vom ExodeUI-Team

Optimierung von Lottie in React: Reduzierung der Bundle-Größe und des CPU-Verbrauchs

Entdecken Sie, wie Sie Lottie-Animationen in React-Apps optimieren, die Auswirkungen von JavaScript-Bundles reduzieren und statische JSONs in interaktive ExodeUI-Zustandsmaschinen migrieren.

Kurzfassung und Definition

Kernaussage

Das Ausführen von Lottie in React mit Lottie-Web oder Lottie-React bedeutet, dass ein Player geladen wird, der die Animation JSON analysiert und Frame für Frame rendert. Für kleine dekorative Animationen ist schlichtes CSS oft leichter; Für interaktive Versionen eignet sich möglicherweise eine zustandsbasierte Laufzeit wie ExodeUI oder Rive besser. Messen Sie die Bundle-Größe und die CPU vor und nach jeder Änderung.

Die Core Web Vitals-Auswirkungen von Lottie

Lottie-Animationen lösen häufig Regressionen der Total Blocking Time (TBT) und des Largest Contentful Paint (LCP) aus, wenn sie während des ersten Seitenladens ausgeführt werden. Da Lottie Matrixtransformationen bei jedem Frame in JavaScript auswertet, leiden mobile Geräte mit geringem Stromverbrauch unter erheblichem Batterieverbrauch und Frame-Ausfällen.

Produktionsnahes Implementierungsbeispiel

Implementierung der interaktiven Komponente
// 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; } }
*/

Verwandte Guides und Beispiele

Interaktive UI einmal gestalten. Dieselbe Datei ausliefern.

Erstelle Zustände, Federphysik und Logik visuell in ExodeUI und spiele dieselbe Datei in React, SwiftUI, Flutter und mehr ab. Kostenlos starten.

Kostenlos testen