Guide · 08
Prestazioni e riproduzione
Come Animated evita lavoro a ogni frame, come verificare quale percorso usa un elemento e come sono stati misurati i numeri della home.
Tre percorsi di riproduzione
Animated sceglie un percorso per ogni proprietà. L’API non cambia con il percorso.
| Percorso | Quando | Lavoro per frame |
|---|---|---|
| browser | Movimento finito di transform e opacity sugli elementi Animated.<tag>, molle comprese | Nessuno nel JavaScript della pagina |
| css | Curve esatte che il browser può esprimere con keyframe CSS condivisi | Nessuno nel JavaScript della pagina |
| js | Variabili di style normali, input, calcoli personalizzati e confini di sequenza | Una scrittura per valore, nessun render di React |
Un valore, molti elementi
Le derivazioni del valore di un hook sono espressioni calc(). Con scope, una sola scrittura di variabile per frame guida ogni elemento del contenitore.
Preparazione dell’esempio…
Verifica il percorso
inspect(element) restituisce il driver e il motivo del fallback per ogni proprietà animata durante un’esecuzione reale.
import { inspect } from '@kkwaenggwari/animated';
console.table(inspect(element));
// property driver reason
// transform browser null
// opacity css null
// --level js css-variable-requires-jsParte dal primo frame
Quando l’attività che avvia un movimento tiene occupato il thread principale, come l’idratazione o un commit grande, il movimento riparte appena quel lavoro finisce invece di apparire già avanzato. Un avvio su una pagina nascosta termina in background.
Come sono stati misurati i numeri della home
Ogni scenario è stato eseguito in una pagina nuova dopo un riscaldamento, con tre campioni registrati, riportando la mediana. Il tempo di JavaScript è quello trascorso nei callback di animation frame mentre il movimento è in corso. Esclude style, layout e paint, che il browser esegue con qualsiasi approccio, quindi non è una misura della CPU totale né del frame rate.
La riproduzione nel browser non rende gratuiti layout, paint, compositing o memoria. Misura la schermata reale sui dispositivi che supporti.
| Scenario | Configurazione | Risultato |
|---|---|---|
| 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