Vadovai · 08

Našumas ir grojimas

Kaip Animated išvengia darbo kiekviename kadre, kaip patikrinti, kokį kelią naudoja elementas, ir kaip buvo išmatuoti pagrindinio puslapio skaičiai.

Trys grojimo keliai

Animated kelią pasirenka kiekvienai savybei. API nesikeičia priklausomai nuo kelio.

KeliasKadaDarbas per kadrą
browserBaigtinis transform ir opacity judesys Animated.<tag> elementuose, įskaitant spyruoklesJokio puslapio JavaScript kode
cssTikslios kreivės, kurias naršyklė gali išreikšti bendrais CSS raktiniais kadraisJokio puslapio JavaScript kode
jsPaprasto stiliaus kintamieji, įvestis, savi skaičiavimai ir sekų ribosVienas įrašymas per reikšmę, be React perpiešimo

Viena reikšmė, daug elementų

hook reikšmės išvestinės yra calc() išraiškos. Su scope vienas kintamojo įrašymas per kadrą valdo kiekvieną konteinerio elementą.

Ruošiamas pavyzdys…

Patikrinkite kelią

inspect(element) tikro vykdymo metu grąžina kiekvienos animuojamos savybės driver ir atsarginio kelio priežastį.

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

Prasideda nuo pirmojo kadro

Kai judesį paleidžianti užduotis užima pagrindinę giją, pavyzdžiui, hidratacija ar didelis commit, judesys paleidžiamas iš naujo, kai tas darbas baigiasi, užuot atrodęs jau pažengęs. Paslėptame puslapyje paleistas judesys baigiamas fone.

Kaip buvo išmatuoti pagrindinio puslapio skaičiai

Kiekvienas scenarijus buvo vykdomas naujame puslapyje po vieno apšilimo, su trimis užfiksuotais pavyzdžiais, pateikiant medianą. JavaScript laikas yra laikas, praleistas animation-frame callback, kol vyksta judesys. Į jį neįeina stilius, išdėstymas ir piešimas, kuriuos naršyklė atlieka kiekvienu atveju, todėl tai nėra viso CPU ar kadrų dažnio matas.

Naršyklės grojimas nepadaro išdėstymo, piešimo, komponavimo ar atminties nemokamų. Matuokite tikrą ekraną įrenginiuose, kuriuos palaikote.

ScenarijusSąrankaRezultatas
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

Paieška

Rašykite, kad ieškotumėte dokumentacijoje.