React · React Native · 16 คอมโพเนนต์
อินเทอร์แอ็กชันที่ยาก ทำเสร็จแล้ว
Animated Chorus คือชุดคอมโพเนนต์การเคลื่อนไหวสำหรับอินเทอร์แอ็กชันที่ทำให้ถูกต้องด้วยมือได้ยาก: ตัวเลขที่หมุน ข้อความที่สตรีมเข้ามา การสลับที่เปลี่ยนขนาด ชีต เพจเจอร์ การกระทำด้วยการปัด และรายการที่เคลื่อนไหวเฉพาะส่วนที่เปลี่ยน แท็กเดียวกับข้อมูลของคุณ ไม่มี provider ไม่ต้องตั้งค่า
npm install @kkwaenggwari/animated-chorusวัดบนบิลด์นี้
Chrome, 2026-09-28 เงื่อนไขและตัวอย่างทั้งหมดอยู่ในคู่มือประสิทธิภาพ วัดอย่างไร
- 28.0KBKB gzip สำหรับ export ทั้ง 16 ตัว
จุดเริ่มต้นสำหรับเว็บทั้งหมดแบบย่อขนาด React เป็น peer เพียงตัวเดียว
- 0callback ของเฟรม JS ขณะเคลื่อนไหว
ตัวเลข ความสูง และไฮไลต์เปลี่ยนพร้อมกัน: เบราว์เซอร์เล่นแอนิเมชันทั้ง 12 ตัว
- 1React commit ต่อการเปลี่ยนค่า
MotionNumberเรนเดอร์เมื่อค่าเปลี่ยน ไม่เคยเรนเดอร์ระหว่างหมุน - 11React commit สำหรับ 3000 ตัวอักษรที่สตรีม
MotionStreamต่อท้ายตัวอักษรโดยตรงและรวมเข้า React ไม่กี่ครั้งต่อวินาที
01ง่ายที่สุด
แท็กเดียวกับข้อมูลของคุณ
ทุกคอมโพเนนต์ทำงานได้ด้วยตัวเอง: ไม่มี provider คอมโพเนนต์ห่อ หรือการเรียกตั้งค่า คอลเลกชันรับ items และ renderItem ส่วนเลย์เอาต์ ข้อความ และสไตล์ยังเป็นของคุณ
- import คอมโพเนนต์เดียวแล้วส่งค่า การผสานทั้งหมดมีเท่านั้น
- รายการ แท็บ และเพจเจอร์อ่านอาร์เรย์ของคุณ key เริ่มต้นคือ
item.id - ข้อความยังเป็นข้อความจริง: ตัดบรรทัดได้ ปรับขนาดตามฟอนต์ และเลือกได้
<MotionNumber value={total} />;<MotionSwap value={status}>{label}</MotionSwap>;<MotionHeight open={open}>{details}</MotionHeight>;<MotionHighlight items={tabs} value={tab} onValueChange={setTab} />;<MotionList items={tasks} renderItem={(task) => task.title} />;<ProgressRing value={progress} />;
หกคอมโพเนนต์สด และโค้ดหนึ่งบรรทัดเบื้องหลังแต่ละตัว
กำลังเตรียมตัวอย่าง…
02เร็วที่สุด
เบราว์เซอร์เป็นผู้เล่น React อยู่นิ่ง
บนเว็บไม่ต้องโหลดไลบรารีแอนิเมชันใด ๆ: คอมโพเนนต์ส่งการเคลื่อนไหวให้ Web Animations API ตัวเลขที่หมุนหรือแผงที่เปลี่ยนขนาดจึงไม่ใช้ JavaScript ต่อเฟรมและไม่มีการเรนเดอร์ React ขณะเคลื่อนที่
- callback ของเฟรม JS 0 ครั้งขณะที่แอนิเมชัน 12 ตัวทำงานพร้อมกัน
- React commit หนึ่งครั้งต่อการเปลี่ยนค่า ไม่ใช่ต่อเฟรม
- ข้อความสตรีม: React commit 11 ครั้งสำหรับ 3000 ตัวอักษร ตัวอย่างด้านล่างนับการเรนเดอร์ของตัวเอง
กำลังเตรียมตัวอย่าง…
03เสถียรที่สุด
ขัดจังหวะอะไรก็ได้ ไม่มีวันกระโดด
ทุกค่าใหม่เริ่มจากสิ่งที่อยู่บนหน้าจอและสปริงรักษาความเร็วไว้ การคลิกรัว ข้อมูลที่ทะลักเข้ามา และการกลับทิศจึงดูตั้งใจ เมื่อการเคลื่อนไหวจบ ไม่มีอะไรทำงานค้าง
- ตัวเลขไม่เคยแตกออก: หลักที่เหลือเลื่อนไปขณะหมุน
- ค่าใหม่ 200 ค่าห่างกัน 5 ms: หลังจากนั้นเหลือแอนิเมชัน 0 ตัวและข้อความสุดท้ายถูกต้องแม่นยำ
- ปลอดภัยภายใต้ React StrictMode ในแอป React Native ที่อยู่เบื้องหลัง การเคลื่อนไหวจะไปที่สถานะสุดท้าย
กำลังเตรียมตัวอย่าง…
16 คอมโพเนนต์ จัดกลุ่มตามงานที่ทำ
ตัวเลขและข้อความ เนื้อหาที่เปลี่ยนขนาด การเลือก รายการ ท่าทาง โอเวอร์เลย์ และความคืบหน้า แต่ละตัวมีโต๊ะทำงานสดพร้อม props อยู่ด้านข้าง
คอมโพเนนต์ทั้งหมดตัวเลขและข้อความ
เนื้อหาและขนาด
การเลือกและการแบ่งหน้า
รายการ
ท่าทาง
โอเวอร์เลย์
ความคืบหน้า
- คำตอบในแชตคำแนะนำที่พับเก็บ คำตอบที่สตรีมเข้ามาด้วยจังหวะคงที่ และบรรทัดสถานะที่สลับ
MotionStreamMotionListMotionSwapMotionHeight - สรุปการชำระเงินจำนวน ยอดต่อรายการ และยอดรวมหมุนเมื่อตะกร้าเปลี่ยน ประกาศคูปองเข้าและออก การชำระเงินต้องกดค้างอย่างตั้งใจ
MotionListMotionNumberMotionPresenceMotionHold - กล่องจดหมายแท็บตัวกรองพร้อมจำนวนแบบสด แถวที่ปัดทิ้งได้ และรายการที่ปิดช่องว่างเอง
MotionHighlightMotionListMotionSwipeMotionNumber - ฟีดรูปภาพปัดผ่านรูปภาพ กระโดดด้วยภาพย่อ เปิดรูปใดก็ได้แบบเต็มจอ และดึงรายละเอียดขึ้นมา
MotionPagerMotionHighlightMotionZoomMotionSheet
import เดียวกันบนเว็บและ React Native
Metro เลือกการใช้งานแบบเนทีฟ และ bundler ของเว็บเลือกแบบ DOM แต่ละแพลตฟอร์มเล่นการเคลื่อนไหวในแบบที่ตัวเองทำได้ดีที่สุด
// Web and React Native: the same import.
import { MotionNumber, MotionList } from '@kkwaenggwari/animated-chorus';
export function Score({ points, players }) {
return (
<>
<MotionNumber value={points} />
<MotionList items={players} renderItem={(player) => player.name} />
</>
);
}| ส่วน | เว็บ | React Native |
|---|---|---|
| Transform และความทึบ | Web Animations API สปริงสุ่มตัวอย่างเชิงวิเคราะห์ | Animated กับ native driver |
| ความกว้างและความสูง | Web Animations API | Animated กับ JS driver เพราะเป็นเลย์เอาต์ |
| ข้อความสตรีม | ต่อท้ายตัวอักษรแล้วค่อย ๆ ปรากฏ React เรนเดอร์ไม่กี่ครั้งต่อวินาที | Text จริง แสดงโดยไม่มีการจาง |
| ชีตและการซูม | dialog แบบเนทีฟใน top layer | Modal โปร่งใส ปุ่มย้อนกลับปิดได้ |
เริ่มได้ในสองนาที
ติดตั้ง import คอมโพเนนต์หนึ่งตัว แล้วส่งค่า
npm install @kkwaenggwari/animated-chorus