Průvodci · 08
Výkon a přehrávání
Jak se Animated vyhýbá práci v každém snímku, jak ověřit, kterou cestu prvek používá, a jak byla změřena čísla na úvodní stránce.
Tři cesty přehrávání
Animated volí cestu pro každou vlastnost. API se s cestou nemění.
| Cesta | Kdy | Práce na snímek |
|---|---|---|
| browser | Konečný pohyb transform a opacity na prvcích Animated.<tag>, včetně pružin | Žádná v JavaScriptu stránky |
| css | Přesné křivky, které prohlížeč umí vyjádřit sdílenými CSS keyframes | Žádná v JavaScriptu stránky |
| js | Běžné proměnné style, vstup, vlastní výpočty a hranice sekvencí | Jeden zápis na hodnotu, žádný render Reactu |
Jedna hodnota, mnoho prvků
Odvozeniny hodnoty hooku jsou výrazy calc(). Se scope jeden zápis proměnné na snímek řídí všechny prvky v kontejneru.
Příprava příkladu…
Ověření cesty
inspect(element) vrací driver a důvod fallbacku pro každou animovanou vlastnost během skutečného běhu.
import { inspect } from '@kkwaenggwari/animated';
console.table(inspect(element));
// property driver reason
// transform browser null
// opacity css null
// --level js css-variable-requires-jsZačíná od prvního snímku
Když úloha, která pohyb spouští, zaměstná hlavní vlákno, například hydratace nebo velký commit, pohyb se po skončení té práce spustí znovu, místo aby se objevil už rozběhnutý. Spuštění na skryté stránce doběhne na pozadí.
Jak byla změřena čísla na úvodní stránce
Každý scénář běžel na nové stránce po jednom zahřátí se třemi zaznamenanými vzorky a uvádí se medián. Čas JavaScriptu je čas strávený v callbackech animation frame během pohybu. Nezahrnuje style, layout a paint, které prohlížeč dělá při každém přístupu, takže to není míra celkového CPU ani snímkové frekvence.
Přehrávání v prohlížeči nedělá layout, paint, compositing ani paměť zadarmo. Měřte skutečnou obrazovku na zařízeních, která podporujete.
| Scénář | Nastavení | Výsledek |
|---|---|---|
| 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