React · React Native · 16 components

Δύσκολες αλληλεπιδράσεις, έτοιμες.

Το Animated Chorus είναι ένα σύνολο από components κίνησης για αλληλεπιδράσεις που είναι δύσκολο να γίνουν σωστά με το χέρι: αριθμοί που κυλούν, κείμενο σε ροή, εναλλαγές που αλλάζουν μέγεθος, sheets, pagers, ενέργειες σάρωσης και λίστες που κινούν μόνο ό,τι άλλαξε. Μία ετικέτα και τα δεδομένα σας. Χωρίς provider, χωρίς ρύθμιση.

Εγκατάσταση
npm install @kkwaenggwari/animated-chorus

Μετρημένο σε αυτή την έκδοση

Chrome, 2026-09-28. Όλες οι συνθήκες και τα δείγματα βρίσκονται στον οδηγό απόδοσης. Πώς μετρήθηκε

  • 28.0KBKB gzip για όλα τα 16 exports

    Ολόκληρο το σημείο εισόδου web, συμπιεσμένο. Το React είναι το μόνο peer.

  • 0Callbacks καρέ JS κατά την κίνηση

    Ένας αριθμός, ένα ύψος και μια επισήμανση αλλάζουν μαζί: το πρόγραμμα περιήγησης παίζει και τις 12 κινήσεις.

  • 1React commit ανά αλλαγή τιμής

    Το MotionNumber αποδίδεται όταν αλλάζει η τιμή, ποτέ ενώ κυλά.

  • 11React commits για 3000 χαρακτήρες σε ροή

    Το MotionStream προσθέτει χαρακτήρες απευθείας και τους ενσωματώνει στο React λίγες φορές το δευτερόλεπτο.

01Το πιο εύκολο

Μία ετικέτα και τα δεδομένα σας

Κάθε component λειτουργεί μόνο του: χωρίς provider, component περιτύλιξης ή κλήση ρύθμισης. Οι συλλογές δέχονται items και renderItem, και η διάταξη, το κείμενο και τα στυλ σας μένουν δικά σας.

  • Εισαγάγετε ένα component και δώστε μια τιμή. Αυτή είναι όλη η ενσωμάτωση.
  • Οι λίστες, οι καρτέλες και οι pagers διαβάζουν τον πίνακά σας· τα keys είναι από προεπιλογή 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} />;

Έξι ζωντανά components και η μία γραμμή κώδικα πίσω από το καθένα.

Προετοιμασία παραδείγματος…

02Το πιο γρήγορο

Το πρόγραμμα περιήγησης παίζει. Το React μένει ακίνητο.

Στο web δεν χρειάζεται να φορτωθεί βιβλιοθήκη κίνησης: τα components παραδίδουν την κίνησή τους στο Web Animations API, οπότε ένας αριθμός που κυλά ή ένα πάνελ που αλλάζει μέγεθος δεν κοστίζει JavaScript ανά καρέ ούτε απόδοση React όσο κινείται.

  • 0 callbacks καρέ JS ενώ τρέχουν μαζί 12 κινήσεις.
  • Ένα React commit ανά αλλαγή τιμής, όχι ένα ανά καρέ.
  • Κείμενο σε ροή: 11 React commits για 3000 χαρακτήρες. Το παράδειγμα παρακάτω μετρά τις δικές του αποδόσεις.

Προετοιμασία παραδείγματος…

03Το πιο σταθερό

Διακόψτε οτιδήποτε. Δεν πηδά ποτέ.

Κάθε νέα τιμή ξεκινά από ό,τι φαίνεται στην οθόνη και τα ελατήρια κρατούν την ταχύτητά τους, οπότε τα γρήγορα κλικ, οι ριπές δεδομένων και οι αναστροφές φαίνονται σκόπιμα. Όταν τελειώνει η κίνηση, τίποτα δεν μένει να τρέχει.

  • Οι αριθμοί δεν διασπώνται ποτέ: τα υπόλοιπα ψηφία γλιστρούν ενώ κυλούν.
  • 200 νέες τιμές με απόσταση 5 ms: μετά απομένουν 0 κινήσεις και το ακριβές τελικό κείμενο.
  • Ασφαλές στο React StrictMode. Σε εφαρμογή React Native στο παρασκήνιο, η κίνηση πηγαίνει στην τελική της κατάσταση.

Προετοιμασία παραδείγματος…

16 components, ομαδοποιημένα ανά δουλειά

Αριθμοί και κείμενο, περιεχόμενο που αλλάζει μέγεθος, επιλογή, λίστες, χειρονομίες, επικαλύψεις και πρόοδος. Το καθένα έχει ζωντανό πάγκο εργασίας με τα props του στο πλάι.

Όλα τα components

Μαζί

Πλήρεις οθόνες που συνδυάζουν πολλά components, το καθένα με τις ρυθμίσεις του έξω από το παράδειγμα.

Όλα τα παραδείγματα

Το ίδιο import σε web και React Native

Το Metro επιλέγει την native υλοποίηση και οι bundlers του web την υλοποίηση 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} />
    </>
  );
}
ΜέροςWebReact Native
Μετασχηματισμοί και αδιαφάνειαWeb Animations API, ελατήρια με αναλυτική δειγματοληψίαAnimated με τον native driver
Πλάτος και ύψοςWeb Animations APIAnimated με τον JS driver, επειδή είναι διάταξη
Κείμενο σε ροήΧαρακτήρες που προστίθενται και εμφανίζονται σταδιακά· λίγες αποδόσεις React το δευτερόλεπτοΠραγματικό Text, χωρίς σβήσιμο
Sheets και ζουμΈνα native dialog στο ανώτατο επίπεδοΈνα διαφανές Modal· το κουμπί επιστροφής το κλείνει

Ξεκινήστε σε δύο λεπτά

Εγκαταστήστε, εισαγάγετε ένα component, δώστε μια τιμή.

npm install @kkwaenggwari/animated-chorus

Αναζήτηση

Πληκτρολογήστε για αναζήτηση στην τεκμηρίωση.