Ghiduri · 08

Performanță și redare

Cum evită Animated munca la fiecare cadru, cum verificați ce cale folosește un element și cum au fost măsurate cifrele de pe pagina principală.

Trei căi de redare

Animated alege o cale per proprietate. API-ul nu se schimbă în funcție de cale.

CaleCândMuncă per cadru
browserMișcare finită de transform și opacity pe elemente Animated.<tag>, inclusiv arcuriNimic în JavaScript-ul paginii
cssCurbe exacte pe care browserul le poate exprima cu keyframe-uri CSS comuneNimic în JavaScript-ul paginii
jsVariabile de stil obișnuite, intrare, calcul propriu și limitele secvențelorO scriere per valoare, fără randare React

O valoare, multe elemente

Derivatele unei valori de hook sunt expresii calc(). Cu scope, o singură scriere de variabilă per cadru conduce fiecare element din container.

Se pregătește exemplul…

Verificați calea

inspect(element) returnează driverul și motivul căii de rezervă pentru fiecare proprietate animată în timpul unei rulări reale.

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

Pornește de la primul cadru

Când sarcina care pornește o mișcare ține ocupat firul principal, cum ar fi hidratarea sau un commit mare, mișcarea repornește după ce se încheie acea muncă, în loc să pară deja avansată. O pornire pe o pagină ascunsă se încheie în fundal.

Cum au fost măsurate cifrele de pe pagina principală

Fiecare scenariu a rulat pe o pagină nouă după o încălzire, cu trei eșantioane înregistrate, raportând mediana. Timpul JavaScript este timpul petrecut în callback-urile animation-frame cât rulează mișcarea. Nu include stilul, layoutul și desenarea, pe care browserul le face pentru orice abordare, deci nu este o măsură a CPU total sau a ratei de cadre.

Redarea în browser nu face gratuite layoutul, desenarea, compunerea sau memoria. Măsurați ecranul real pe dispozitivele pe care le suportați.

ScenariuConfigurareRezultat
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

Căutare

Tastați pentru a căuta în documentație.