คู่มือ · 08

ประสิทธิภาพและการเล่น

Animated หลีกเลี่ยงงานในทุกเฟรมอย่างไร วิธีตรวจว่าองค์ประกอบใช้เส้นทางใด และตัวเลขบนหน้าแรกวัดอย่างไร

สามเส้นทางการเล่น

Animated เลือกเส้นทางตามพร็อพเพอร์ตี API ไม่เปลี่ยนตามเส้นทาง

เส้นทางเมื่อใดงานต่อเฟรม
browserการเคลื่อนไหว transform และ opacity ที่มีจุดสิ้นสุดบนองค์ประกอบ Animated.<tag> รวมถึงสปริงไม่มีใน JavaScript ของหน้า
cssเส้นโค้งแม่นยำที่เบราว์เซอร์แสดงได้ด้วยคีย์เฟรม CSS ที่ใช้ร่วมกันไม่มีใน JavaScript ของหน้า
jsตัวแปรของสไตล์ธรรมดา อินพุต การคำนวณเอง และขอบเขตของ sequenceเขียนครั้งเดียวต่อค่า ไม่มีการเรนเดอร์ React

ค่าเดียว หลายองค์ประกอบ

สิ่งที่สร้างจากค่าของ hook คือนิพจน์ calc() ด้วย scope การเขียนตัวแปรครั้งเดียวต่อเฟรมจะขับทุกองค์ประกอบในคอนเทนเนอร์

กำลังเตรียมตัวอย่าง…

ตรวจเส้นทาง

inspect(element) คืน driver และเหตุผลของ 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

เริ่มตั้งแต่เฟรมแรก

เมื่องานที่เริ่มการเคลื่อนไหวทำให้เธรดหลักยุ่ง เช่น hydration หรือ commit ขนาดใหญ่ การเคลื่อนไหวจะเริ่มใหม่หลังงานนั้นจบ แทนที่จะดูเหมือนเดินไปแล้ว การเริ่มบนหน้าที่ซ่อนอยู่จะจบในเบื้องหลัง

ตัวเลขบนหน้าแรกวัดอย่างไร

แต่ละสถานการณ์รันในหน้าใหม่หลังการวอร์มอัปหนึ่งครั้ง บันทึกสามตัวอย่าง และรายงานค่ามัธยฐาน เวลา JavaScript คือเวลาที่ใช้ใน callback ของ animation-frame ขณะการเคลื่อนไหวทำงาน ไม่รวมสไตล์ เลย์เอาต์ และการวาด ซึ่งเบราว์เซอร์ทำทุกวิธีอยู่แล้ว จึงไม่ใช่การวัด CPU ทั้งหมดหรืออัตราเฟรม

การเล่นโดยเบราว์เซอร์ไม่ได้ทำให้เลย์เอาต์ การวาด การ 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

ค้นหา

พิมพ์เพื่อค้นหาเอกสาร