मार्गदर्शक · 08
कार्यक्षमता आणि प्लेबॅक
Animated प्रति फ्रेम काम कसे टाळते, एखादा एलिमेंट कोणता मार्ग वापरतो ते कसे तपासावे, आणि मुख्य पानावरील आकडे कसे मोजले गेले.
तीन प्लेबॅक मार्ग
Animated प्रत्येक गुणधर्मासाठी मार्ग निवडतो. मार्गानुसार API बदलत नाही.
| मार्ग | केव्हा | प्रति फ्रेम काम |
|---|---|---|
| browser | Animated.<tag> एलिमेंट्सवरील मर्यादित transform आणि opacity मोशन, spring सह | पानाच्या JavaScript मध्ये काहीही नाही |
| css | सामायिक CSS keyframes ने ब्राउझर व्यक्त करू शकणारे अचूक वक्र | पानाच्या JavaScript मध्ये काहीही नाही |
| js | साधे style व्हेरिएबल, इनपुट, सानुकूल गणना आणि sequence सीमा | प्रति मूल्य एक लेखन, React रेंडर नाही |
एक मूल्य, अनेक एलिमेंट्स
हुक मूल्याची व्युत्पन्ने calc() अभिव्यक्ती आहेत. scope सह, प्रति फ्रेम एकच व्हेरिएबल लेखन कंटेनरमधील प्रत्येक एलिमेंट चालवते.
उदाहरण तयार होत आहे…
मार्ग तपासा
inspect(element) प्रत्यक्ष चालवताना प्रत्येक ॲनिमेटेड गुणधर्माचा driver आणि fallback कारण परत करते.
import { inspect } from '@kkwaenggwari/animated';
console.table(inspect(element));
// property driver reason
// transform browser null
// opacity css null
// --level js css-variable-requires-jsपहिल्या फ्रेमपासूनच सुरू होते
मोशन सुरू करणारे काम — hydration किंवा मोठा commit — main thread व्यस्त ठेवते तेव्हा, आधीच पुढे गेल्यासारखे न दिसता, ते काम संपल्यावर मोशन पुन्हा सुरू होते. लपलेल्या पानावर सुरू झालेले पार्श्वभूमीत पूर्ण होते.
मुख्य पानावरील आकडे कसे मोजले गेले
प्रत्येक परिस्थिती एका वॉर्म-अपनंतर नवीन पानावर चालवली गेली; तीन नमुने नोंदवून मध्यम मूल्य कळवले. JavaScript वेळ म्हणजे मोशन चालू असताना animation-frame callback मध्ये घालवलेला वेळ. प्रत्येक पद्धतीसाठी ब्राउझर करत असलेले style, layout आणि paint यात नाहीत, त्यामुळे हे एकूण CPU किंवा फ्रेम दराचे मोजमाप नाही.
ब्राउझर प्लेबॅक layout, paint, compositing किंवा मेमरी मोफत करत नाही. तुम्ही समर्थित करत असलेल्या उपकरणांवर खरी स्क्रीन मोजा.
| परिस्थिती | सेटअप | परिणाम |
|---|---|---|
| 400 Animated.div elements move translateX and fade in (timing, 1800 ms) | seed/pose/tempo on Animated.div; 800 browser animations | 0.00 ms |
| One useAnimated value drives 10,000 elements in ordinary style (loop, 1200 ms) | transform and opacity as calc() of one CSS variable written on a scope element | 0.13 ms |
2026-09-28 · Chrome 153.0.8010.52 (headless) · Windows_NT x64 · Intel(R) Core(TM) i7-14700K