React में Lottie को अनुकूलित करना: बंडल आकार और सीपीयू खपत को कम करना
React ऐप्स में Lottie एनिमेशन को अनुकूलित करने, JavaScript बंडल प्रभाव को कम करने और स्थिर JSON को इंटरैक्टिव ExodeUI राज्य मशीनों में स्थानांतरित करने का तरीका जानें।
कोर टेकअवे
लोटी-वेब या लोटी-रिएक्ट का उपयोग करके React में Lottie चलाने का अर्थ है एक प्लेयर लोड करना जो एनीमेशन JSON को पार्स करता है और इसे फ्रेम दर फ्रेम प्रस्तुत करता है। छोटे सजावटी एनिमेशन के लिए, सादा CSS अक्सर हल्का होता है; इंटरैक्टिव लोगों के लिए, राज्य-आधारित रनटाइम जैसे ExodeUI या Rive बेहतर फिट हो सकता है। किसी भी बदलाव से पहले और बाद में बंडल आकार और सीपीयू को मापें।
Lottie का मुख्य वेब वाइटल्स प्रभाव
प्रारंभिक पृष्ठ लोड के दौरान निष्पादित होने पर Lottie एनिमेशन अक्सर टोटल ब्लॉकिंग टाइम (टीबीटी) और सबसे बड़े कंटेंटफुल पेंट (एलसीपी) रिग्रेशन को ट्रिगर करते हैं। क्योंकि Lottie, JavaScript में प्रत्येक फ्रेम पर मैट्रिक्स परिवर्तनों का मूल्यांकन करता है, कम-शक्ति वाले मोबाइल उपकरणों में महत्वपूर्ण बैटरी ड्रेन और फ्रेम ड्रॉप का सामना करना पड़ता है।
उत्पादन कार्यान्वयन स्निपेट
// 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; } }
*/