Oppaat · 08
Suorituskyky ja toisto
Miten Animated välttää työn joka ruudussa, miten tarkistat elementin käyttämän polun ja miten etusivun luvut mitattiin.
Kolme toistopolkua
Animated valitsee polun ominaisuuskohtaisesti. API ei muutu polun mukana.
| Polku | Milloin | Työ ruutua kohden |
|---|---|---|
| browser | Äärellinen transform- ja opacity-liike Animated.<tag>-elementeissä, jouset mukaan lukien | Ei mitään sivun JavaScriptissä |
| css | Tarkat käyrät, jotka selain voi ilmaista jaetuilla CSS-avainruuduilla | Ei mitään sivun JavaScriptissä |
| js | Tavallisen tyylin muuttujat, syöte, omat laskelmat ja sekvenssien rajat | Yksi kirjoitus arvoa kohden, ei React-renderöintiä |
Yksi arvo, monta elementtiä
Hookin arvon johdannaiset ovat calc()-lausekkeita. scope-asetuksella yksi muuttujan kirjoitus ruutua kohden ohjaa jokaista säiliön elementtiä.
Valmistellaan esimerkkiä…
Tarkista polku
inspect(element) palauttaa jokaisen animoidun ominaisuuden driverin ja varapolun syyn todellisen ajon aikana.
import { inspect } from '@kkwaenggwari/animated';
console.table(inspect(element));
// property driver reason
// transform browser null
// opacity css null
// --level js css-variable-requires-jsAlkaa ensimmäisestä ruudusta
Kun liikkeen käynnistävä tehtävä pitää pääsäikeen kiireisenä, kuten hydraatio tai suuri commit, liike käynnistyy uudelleen tuon työn päätyttyä sen sijaan, että näyttäisi jo edenneeltä. Piilotetulla sivulla käynnistetty liike päättyy taustalla.
Miten etusivun luvut mitattiin
Jokainen skenaario ajettiin uudella sivulla yhden lämmittelyn jälkeen kolmella tallennetulla näytteellä, ja raportoitu arvo on mediaani. JavaScript-aika on aika, joka kuluu animation-frame-callbackeissa liikkeen aikana. Siihen eivät kuulu tyyli, asettelu ja piirto, jotka selain tekee jokaisessa lähestymistavassa, joten se ei mittaa kokonais-CPU:ta tai ruudunpäivitysnopeutta.
Selaintoisto ei tee asettelusta, piirrosta, koostamisesta tai muistista ilmaista. Mittaa todellinen näkymä tukemillasi laitteilla.
| Skenaario | Kokoonpano | Tulos |
|---|---|---|
| 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