Guides · 08

Performance und Wiedergabe

Wie Animated Arbeit pro Frame vermeidet, wie du prüfst, welchen Weg ein Element nimmt, und wie die Zahlen auf der Startseite gemessen wurden.

Drei Wiedergabewege

Animated wählt pro Eigenschaft einen Weg. Die API ändert sich mit dem Weg nicht.

WegWannArbeit pro Frame
browserEndliche transform- und opacity-Bewegung auf Animated.<tag>-Elementen, Federn eingeschlossenKeine im JavaScript der Seite
cssExakte Kurven, die der Browser mit geteilten CSS-Keyframes ausdrücken kannKeine im JavaScript der Seite
jsNormale style-Variablen, Eingaben, eigene Berechnungen und sequence-GrenzenEin Schreibvorgang pro Wert, kein React-Render

Ein Wert, viele Elemente

Ableitungen eines Hook-Werts sind calc()-Ausdrücke. Mit scope treibt ein Variablen-Schreibvorgang pro Frame jedes Element im Container an.

Beispiel wird vorbereitet…

Den Weg prüfen

inspect(element) gibt während eines echten Durchlaufs für jede animierte Eigenschaft den Driver und den Fallback-Grund zurück.

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

Startet ab dem ersten Frame

Hält die Aufgabe, die eine Bewegung startet, den Main-Thread beschäftigt – etwa die Hydration oder ein großer Commit –, startet die Bewegung neu, sobald diese Arbeit endet, statt bereits fortgeschritten zu erscheinen. Ein Start auf einer ausgeblendeten Seite wird im Hintergrund fertig.

So wurden die Zahlen der Startseite gemessen

Jedes Szenario lief in einer frischen Seite nach einem Warm-up, mit drei aufgezeichneten Messungen; angegeben ist der Median. Die JavaScript-Zeit ist die Zeit in Animation-Frame-Callbacks, während die Bewegung läuft. Style, Layout und Paint sind nicht enthalten, weil der Browser sie bei jedem Ansatz erledigt – es ist also kein Maß für die gesamte CPU-Last oder die Bildrate.

Browser-Wiedergabe macht Layout, Paint, Compositing und Speicher nicht kostenlos. Miss den echten Bildschirm auf den Geräten, die du unterstützt.

SzenarioAufbauErgebnis
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

Suchen

Tippe, um die Dokumentation zu durchsuchen.