Panduan · 08

Performa dan pemutaran

Bagaimana Animated menghindari kerja per frame, cara memeriksa jalur yang dipakai elemen, dan bagaimana angka di beranda diukur.

Tiga jalur pemutaran

Animated memilih jalur per properti. API tidak berubah mengikuti jalurnya.

JalurKapanKerja per frame
browserGerak transform dan opacity yang terbatas pada elemen Animated.<tag>, termasuk pegasTidak ada di JavaScript halaman
cssKurva tepat yang dapat dinyatakan browser dengan keyframe CSS bersamaTidak ada di JavaScript halaman
jsVariabel gaya biasa, input, perhitungan sendiri, dan batas sequenceSatu penulisan per nilai, tanpa render React

Satu nilai, banyak elemen

Turunan dari nilai hook adalah ekspresi calc(). Dengan scope, satu penulisan variabel per frame menggerakkan setiap elemen di dalam wadah.

Menyiapkan contoh…

Periksa jalurnya

inspect(element) mengembalikan driver dan alasan fallback untuk setiap properti beranimasi selama eksekusi nyata.

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

Dimulai dari frame pertama

Saat tugas yang memulai gerak membuat thread utama sibuk, seperti hidrasi atau commit besar, gerak dimulai ulang setelah pekerjaan itu selesai alih-alih tampak sudah berjalan. Gerak yang dimulai di halaman tersembunyi selesai di latar belakang.

Cara angka di beranda diukur

Setiap skenario dijalankan di halaman baru setelah satu pemanasan, dengan tiga sampel terekam, dan yang dilaporkan adalah median. Waktu JavaScript adalah waktu yang dihabiskan di dalam callback animation-frame selama gerak berjalan. Ini tidak mencakup gaya, tata letak, dan paint yang dikerjakan browser untuk setiap pendekatan, jadi ini bukan ukuran total CPU atau frame rate.

Pemutaran oleh browser tidak membuat tata letak, paint, compositing, atau memori menjadi gratis. Ukur layar sesungguhnya di perangkat yang Anda dukung.

SkenarioPenyiapanHasil
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

Cari

Ketik untuk mencari dokumentasi.