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 อยู่ด้านข้าง

คอมโพเนนต์ทั้งหมด

นำมาประกอบกัน

หน้าจอครบชุดที่รวมหลายคอมโพเนนต์ แต่ละหน้ามีการตั้งค่าอยู่นอกตัวอย่าง

ตัวอย่างทั้งหมด

import เดียวกันบนเว็บและ React Native

Metro เลือกการใช้งานแบบเนทีฟ และ bundler ของเว็บเลือกแบบ DOM แต่ละแพลตฟอร์มเล่นการเคลื่อนไหวในแบบที่ตัวเองทำได้ดีที่สุด

App.jsx
// 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 APIAnimated กับ JS driver เพราะเป็นเลย์เอาต์
ข้อความสตรีมต่อท้ายตัวอักษรแล้วค่อย ๆ ปรากฏ React เรนเดอร์ไม่กี่ครั้งต่อวินาทีText จริง แสดงโดยไม่มีการจาง
ชีตและการซูมdialog แบบเนทีฟใน top layerModal โปร่งใส ปุ่มย้อนกลับปิดได้

ค้นหา

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