Gidsen · 08

Prestaties en afspelen

Hoe Animated werk per frame vermijdt, hoe je controleert welk pad een element gebruikt, en hoe de getallen op de homepage zijn gemeten.

Drie afspeelpaden

Animated kiest per eigenschap een pad. De API verandert niet met het pad.

PadWanneerWerk per frame
browserEindige transform- en opacity-beweging op Animated.<tag>-elementen, veren inbegrepenGeen in de JavaScript van de pagina
cssExacte curves die de browser kan uitdrukken met gedeelde CSS-keyframesGeen in de JavaScript van de pagina
jsGewone style-variabelen, invoer, eigen berekeningen en sequentiegrenzenEén schrijfactie per waarde, geen React-render

Eén waarde, veel elementen

Afleidingen van een hookwaarde zijn calc()-expressies. Met scope stuurt één variabele-schrijfactie per frame elk element in de container aan.

Voorbeeld voorbereiden…

Controleer het pad

inspect(element) geeft de driver en de fallback-reden voor elke geanimeerde eigenschap tijdens een echte run.

debug.js
import { inspect } from '@kkwaenggwari/animated';

console.table(inspect(element));
// property   driver     reason
// transform  browser    null
// opacity    css        null
// --level    js         css-variable-requires-js

Begint bij het eerste frame

Als de taak die een beweging start de main thread bezet houdt, zoals hydration of een grote commit, begint de beweging opnieuw zodra dat werk klaar is in plaats van al gevorderd te verschijnen. Een start op een verborgen pagina maakt zich op de achtergrond af.

Hoe de getallen op de homepage zijn gemeten

Elk scenario draaide op een verse pagina na één opwarmronde, met drie vastgelegde samples, waarvan de mediaan wordt gerapporteerd. JavaScript-tijd is de tijd binnen animation frame-callbacks terwijl de beweging loopt. Style, layout en paint vallen erbuiten, die doet de browser bij elke aanpak, dus het is geen maat voor totale CPU of framerate.

Afspelen in de browser maakt layout, paint, compositing en geheugen niet gratis. Meet het echte scherm op de apparaten die je ondersteunt.

ScenarioOpzetResultaat
400 Animated.div elements move translateX and fade in (timing, 1800 ms)seed/pose/tempo on Animated.div; 800 browser animations0.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 element0.13 ms

2026-09-28 · Chrome 153.0.8010.52 (headless) · Windows_NT x64 · Intel(R) Core(TM) i7-14700K

Zoeken

Typ om de documentatie te doorzoeken.