Посібники · 08

Продуктивність і відтворення

Як Animated уникає роботи на кожному кадрі, як перевірити, який шлях використовує елемент, і як вимірювалися числа на головній сторінці.

Три шляхи відтворення

Animated обирає шлях для кожної властивості. API від шляху не змінюється.

ШляхКолиРобота за кадр
browserСкінченний рух transform і opacity на елементах Animated.<tag>, зокрема пружиниНемає в JavaScript сторінки
cssТочні криві, які браузер може виразити спільними CSS keyframesНемає в JavaScript сторінки
jsЗвичайні змінні style, введення, власні обчислення й межі послідовностейОдин запис на значення, без рендеру React

Одне значення, багато елементів

Похідні від значення хука — вирази calc(). Зі scope один запис змінної за кадр керує всіма елементами контейнера.

Підготовка прикладу…

Перевірка шляху

inspect(element) повертає драйвер і причину fallback для кожної анімованої властивості під час реального запуску.

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

Старт із першого кадру

Коли завдання, що запускає рух, займає головний потік — наприклад, гідратація чи великий коміт, — рух перезапускається після закінчення цієї роботи, а не з’являється вже просунутим. Старт на прихованій сторінці завершується у фоні.

Як вимірювалися числа на головній

Кожен сценарій запускався на новій сторінці після одного прогріву, із трьома записаними вимірами; наводиться медіана. Час JavaScript — це час усередині колбеків animation frame, поки триває рух. Він не враховує style, layout і paint, які браузер виконує за будь-якого підходу, тож це не міра загального навантаження CPU чи частоти кадрів.

Відтворення браузером не робить layout, paint, compositing і пам’ять безкоштовними. Вимірюйте реальний екран на пристроях, які ви підтримуєте.

СценарійУмовиРезультат
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

Пошук

Почніть вводити, щоб шукати в документації.