Guider · 08
Ytelse og avspilling
Hvordan Animated unngår arbeid i hvert bilde, hvordan du sjekker hvilken vei et element bruker, og hvordan tallene på forsiden ble målt.
Tre avspillingsveier
Animated velger en vei per egenskap. API-et endres ikke med veien.
| Vei | Når | Arbeid per bilde |
|---|---|---|
| browser | Endelig transform- og opacity-bevegelse på Animated.<tag>-elementer, fjærer inkludert | Ingenting i sidens JavaScript |
| css | Eksakte kurver nettleseren kan uttrykke med delte CSS-keyframes | Ingenting i sidens JavaScript |
| js | Vanlige style-variabler, inndata, egne beregninger og sekvensgrenser | Én skriving per verdi, ingen React-rendering |
Én verdi, mange elementer
Avledninger av en hook-verdi er calc()-uttrykk. Med scope styrer én variabelskriving per bilde alle elementene i containeren.
Forbereder eksempelet …
Sjekk veien
inspect(element) returnerer driveren og fallback-årsaken for hver animerte egenskap under en ekte kjøring.
import { inspect } from '@kkwaenggwari/animated';
console.table(inspect(element));
// property driver reason
// transform browser null
// opacity css null
// --level js css-variable-requires-jsStarter fra første bilde
Når oppgaven som starter en bevegelse holder hovedtråden opptatt, som hydrering eller en stor commit, starter bevegelsen på nytt når det arbeidet er ferdig, i stedet for å se allerede påbegynt ut. En start på en skjult side fullføres i bakgrunnen.
Slik ble tallene på forsiden målt
Hvert scenario kjørte på en ny side etter én oppvarming, med tre registrerte målinger, og medianen oppgis. JavaScript-tid er tiden i animation frame-callbacks mens bevegelsen pågår. Den utelater style, layout og paint, som nettleseren gjør med alle tilnærminger, så den er ikke et mål på samlet CPU eller bildefrekvens.
Avspilling i nettleseren gjør ikke layout, paint, compositing eller minne gratis. Mål den ekte skjermen på enhetene du støtter.
| Scenario | Oppsett | Resultat |
|---|---|---|
| 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