Sprievodcovia · 08
Výkon a prehrávanie
Ako sa Animated vyhýba práci v každej snímke, ako overiť, ktorú cestu prvok používa, a ako boli namerané čísla na úvodnej stránke.
Tri cesty prehrávania
Animated volí cestu pre každú vlastnosť. API sa s cestou nemení.
| Cesta | Kedy | Práca na snímku |
|---|---|---|
| browser | Konečný pohyb transform a opacity na prvkoch Animated.<tag>, vrátane pružín | Žiadna v JavaScripte stránky |
| css | Presné krivky, ktoré prehliadač vie vyjadriť zdieľanými CSS keyframes | Žiadna v JavaScripte stránky |
| js | Bežné premenné style, vstup, vlastné výpočty a hranice sekvencií | Jeden zápis na hodnotu, žiadny render Reactu |
Jedna hodnota, mnoho prvkov
Odvodeniny hodnoty hooku sú výrazy calc(). So scope jeden zápis premennej na snímku riadi všetky prvky v kontajneri.
Príprava príkladu…
Overenie cesty
inspect(element) vracia driver a dôvod fallbacku pre každú animovanú vlastnosť počas skutočného behu.
import { inspect } from '@kkwaenggwari/animated';
console.table(inspect(element));
// property driver reason
// transform browser null
// opacity css null
// --level js css-variable-requires-jsZačína od prvej snímky
Keď úloha, ktorá pohyb spúšťa, zamestná hlavné vlákno, napríklad hydratácia alebo veľký commit, pohyb sa po skončení tej práce spustí znova, namiesto aby sa objavil už rozbehnutý. Spustenie na skrytej stránke dobehne na pozadí.
Ako boli namerané čísla na úvodnej stránke
Každý scenár bežal na novej stránke po jednom zahriatí s tromi zaznamenanými vzorkami a uvádza sa medián. Čas JavaScriptu je čas strávený v callbackoch animation frame počas pohybu. Nezahŕňa style, layout a paint, ktoré prehliadač robí pri každom prístupe, takže to nie je miera celkového CPU ani snímkovej frekvencie.
Prehrávanie v prehliadači nerobí layout, paint, compositing ani pamäť zadarmo. Merajte skutočnú obrazovku na zariadeniach, ktoré podporujete.
| Scenár | Nastavenie | Výsledok |
|---|---|---|
| 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