Guides · 08
Performance et lecture
Comment Animated évite le travail à chaque image, comment vérifier le chemin qu’emprunte un élément, et comment les chiffres de l’accueil ont été mesurés.
Trois chemins de lecture
Animated choisit un chemin par propriété. L’API ne change pas selon le chemin.
| Chemin | Quand | Travail par image |
|---|---|---|
| browser | Mouvements finis de transform et opacity sur les éléments Animated.<tag>, ressorts compris | Aucun dans le JavaScript de la page |
| css | Courbes exactes que le navigateur peut exprimer avec des keyframes CSS partagées | Aucun dans le JavaScript de la page |
| js | Variables de style ordinaires, entrées, calculs personnalisés et limites de sequence | Une écriture par valeur, aucun rendu React |
Une valeur, de nombreux éléments
Les dérivations d’une valeur de hook sont des expressions calc(). Avec scope, une écriture de variable par image anime tous les éléments du conteneur.
Préparation de l’exemple…
Vérifier le chemin
inspect(element) renvoie le driver et la raison du repli pour chaque propriété animée, pendant une exécution réelle.
import { inspect } from '@kkwaenggwari/animated';
console.table(inspect(element));
// property driver reason
// transform browser null
// opacity css null
// --level js css-variable-requires-jsDémarre dès la première image
Quand la tâche qui lance un mouvement occupe le thread principal, comme l’hydratation ou un gros commit, le mouvement redémarre une fois ce travail terminé au lieu d’apparaître déjà avancé. Un démarrage sur une page masquée se termine en arrière-plan.
Comment les chiffres de l’accueil ont été mesurés
Chaque scénario a été exécuté dans une page neuve après un échauffement, avec trois échantillons enregistrés, dont on rapporte la médiane. Le temps JavaScript est le temps passé dans les callbacks d’animation frame pendant le mouvement. Il exclut le style, la mise en page et le rendu, que le navigateur effectue quelle que soit l’approche : ce n’est donc pas une mesure du CPU total ni de la fréquence d’images.
La lecture par le navigateur ne rend pas gratuits la mise en page, le rendu, la composition ni la mémoire. Mesurez l’écran réel sur les appareils que vous prenez en charge.
| Scénario | Configuration | Résultat |
|---|---|---|
| 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