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.

PercorsoQuandoLavoro per frame
browserMovimento finito di transform e opacity sugli elementi Animated.<tag>, molle compreseNessuno nel JavaScript della pagina
cssCurve esatte che il browser può esprimere con keyframe CSS condivisiNessuno nel JavaScript della pagina
jsVariabili di style normali, input, calcoli personalizzati e confini di sequenzaUna 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.

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

Parte 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.

ScenarioConfigurazioneRisultato
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

Cerca

Scrivi per cercare nella documentazione.