Κίνηση για React DOM · Το Animated API του React Native

Γράψτε την κίνηση μία φορά. Τρέχει ομαλά, δεν σπάει ποτέ.

Το Animated φέρνει το Animated του React Native στο web. Μία τιμή οδηγεί όσα στοιχεία θέλετε χωρίς απόδοση React σε κάθε καρέ, η υποστηριζόμενη κίνηση παίζεται από το ίδιο το πρόγραμμα περιήγησης και κάθε διακοπή συνεχίζει από ό,τι φαίνεται στην οθόνη.

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

Μία τιμή ρολογιού οδηγεί τα κύματα και των 64 σχημάτων. Μετακινήστε τον δείκτη πάνω από τη σκηνή.

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

Μετρημένο με το build 1.0.0 σε headless Chrome σε επιτραπέζιο PC. Οι αριθμοί εξαρτώνται από τη συσκευή. Πώς μετρήσαμε

  • 0.00msJavaScript ανά καρέ ενώ κινούνται 400 στοιχεία

    Η πεπερασμένη κίνηση transform και opacity στα στοιχεία Animated παίζεται από το πρόγραμμα περιήγησης. Τα callbacks καρέ της σελίδας δεν κάνουν καμία δουλειά.

  • 0.13msJavaScript ανά καρέ όταν μία τιμή οδηγεί 10.000 στοιχεία

    Η τιμή γράφει μία μεταβλητή CSS· κάθε στοιχείο παράγει από αυτήν το δικό του στυλ στο CSS.

  • 0Αποδόσεις React κατά την κίνηση

    Οι τιμές δεν περνούν ποτέ από την κατάσταση του React. Τα components αποδίδονται όταν αλλάζουν τα props σας, όχι όταν αλλάζει το καρέ.

01 · Απλό

Το API που ήδη ξέρετε, σε απλό style του React

Τα timing, spring, interpolate, loop και Animated.event κρατούν τα ονόματα και τις ρυθμίσεις του React Native. Η τιμή μπαίνει κατευθείαν στο απλό prop style, οπότε δεν χρειάζεται να μάθετε κάποιο ειδικό component πριν από την πρώτη κίνηση.

  • Μεταφέρετε κώδικα από το React Native μετονομάζοντας το Animated.View σε Animated.div.
  • Μία τιμή μπορεί να κινεί ταυτόχρονα μια ταινία, έναν δίσκο και μια σειρά καρτών, το καθένα με το δικό του εύρος.
  • Το useAnimated κατέχει τη συνταγή: ξεκινά κατά την προσάρτηση, ξαναξεκινά όταν αλλάζει μια εξάρτηση και καθαρίζει κατά την αποπροσάρτηση.

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

Οι ίδιες κλήσεις με το React Native

Spinner.jsx
// React Native
<Animated.View style={{ transform: [{ rotate }] }} />

// React DOM with @kkwaenggwari/animated — the rest is identical
<Animated.div style={{ transform: [{ rotate }] }} />

const spin = useAnimatedValue(0);
const rotate = spin.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'] });

Animated.loop(
  Animated.timing(spin, { toValue: 1, duration: 900, easing: Easing.linear, useNativeDriver: true }),
).start();

02 · Γρήγορο

Χωρίς απόδοση React σε κάθε καρέ

Η τιμή ενός hook είναι μεταβλητή CSS. Οι γραμμικές παρεμβολές και η αριθμητική γίνονται ακριβείς εκφράσεις calc() αυτής της μεταβλητής, οπότε κάθε καρέ είναι μία εγγραφή και τα υπόλοιπα τα υπολογίζει το πρόγραμμα περιήγησης. Η πεπερασμένη κίνηση transform και opacity στα στοιχεία Animated.<tag> παίζεται από το πρόγραμμα περιήγησης χωρίς callbacks καρέ.

  • Αλλάξτε τον αριθμό των κουκκίδων: ο μετρητής δείχνει ότι το React απέδωσε μία φορά ανά αλλαγή, ποτέ ανά καρέ.
  • Το scope γράφει την τιμή μία φορά στο κοντέινερ αντί για κάθε στοιχείο.
  • Το inspect(element) λέει ποια διαδρομή χρησιμοποιεί κάθε ιδιότητα και γιατί.

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

03 · Σταθερό

Διακόψτε το οπουδήποτε. Συνεχίζει.

Ένας νέος στόχος ξεκινά από εκεί που βρίσκεται το στοιχείο στην οθόνη, και ένα ελατήριο κρατά και την ταχύτητα, οπότε μια αναστροφή στη μέση της διαδρομής καμπυλώνει ομαλά αντί να σταματήσει πρώτα. Οι ελεγκτές που δηλώνονται σε ένα hook σταματούν και απελευθερώνονται κατά την αντικατάσταση και την αποπροσάρτηση, και το markup που αποδόθηκε στον διακομιστή συνεχίζει να κινείται μετά το hydration.

  • Κάντε κλικ δύο φορές γρήγορα: με spring η τροχιά καμπυλώνει, με timing η θέση κρατιέται αλλά ξεκινά νέα καμπύλη.
  • Η διακοπή αφήνει την τιμή εκεί που είναι· τίποτα δεν πηδά στην τελική κατάσταση.
  • Κανένας ξεχασμένος βρόχος καρέ μετά από αποπροσάρτηση, αλλαγή διαδρομής ή κρυφή καρτέλα.

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

Χτισμένο με Animated

Χρειάζεστε έτοιμο component; Animated Chorus.

Αριθμοί που κυλούν, επισημάνσεις καρτών που ταξιδεύουν, πρόοδος, sheets και κινούμενες λίστες που μπαίνουν απευθείας σε React και React Native. Αυτά τα τρία τρέχουν τώρα σε αυτή τη σελίδα.

Επισκεφθείτε το Animated Chorus

Ξεκινήστε σε τρία λεπτά

Εγκαταστήστε το πακέτο, κινήστε μια πρώτη τιμή και μετά επιλέξτε οδηγό για την εργασία που έχετε μπροστά σας.

npm install @kkwaenggwari/animated

Αναζήτηση

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