React DOM साठी मोशन · React Native Animated API

मोशन एकदा लिहा. ते सुरळीत चालते आणि कधीही तुटत नाही.

Animated, React Native चे Animated वेबवर आणते. एक मूल्य प्रत्येक फ्रेममध्ये React रेंडर न करता कितीही एलिमेंट्स चालवते, समर्थित मोशन ब्राउझरमध्येच चालते, आणि प्रत्येक व्यत्यय स्क्रीनवर दिसणाऱ्या स्थितीपासून पुढे जातो.

इन्स्टॉलेशन
npm install @kkwaenggwari/animated

एकच घड्याळ मूल्य सर्व 64 आकारांची लाट चालवते. मंचावर पॉइंटर फिरवा.

या प्रकाशनावर मोजले

डेस्कटॉप PC वर headless Chrome मध्ये 1.0.0 build ने मोजले. आकडे उपकरणानुसार बदलतात. आम्ही कसे मोजले

  • 0.00ms400 एलिमेंट्स हलताना प्रति फ्रेम JavaScript

    Animated एलिमेंट्सवरील मर्यादित transform आणि opacity मोशन ब्राउझरमध्ये चालते. पानाचे स्वतःचे फ्रेम callback कोणतेही काम करत नाहीत.

  • 0.13msएक मूल्य 10,000 एलिमेंट्स चालवताना प्रति फ्रेम JavaScript

    मूल्य एकच CSS व्हेरिएबल लिहिते; प्रत्येक एलिमेंट त्यातून CSS मध्ये आपली शैली मिळवतो.

  • 0मोशनदरम्यान React रेंडर

    मूल्ये कधीही React state मधून जात नाहीत. फ्रेम बदलल्यावर नाही, तर तुमचे props बदलल्यावर कंपोनंट रेंडर होतात.

01 · सोपे

तुम्हाला आधीच माहीत असलेले API, साध्या React style वर

timing, spring, interpolate, loop आणि Animated.event त्यांची React Native नावे आणि कॉन्फिगरेशन राखतात. मूल्य थेट साध्या style prop मध्ये जाते, त्यामुळे पहिल्या मोशनपूर्वी शिकायचा विशेष कंपोनंट नाही.

  • Animated.View चे नाव Animated.div करून React Native कोड आणा.
  • एक मूल्य एक पट्टी, एक डायल आणि कार्डांची रांग एकाच वेळी, प्रत्येकाला स्वतःच्या श्रेणीसह, हलवू शकते.
  • 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 रेंडर नाही

हुक मूल्य हे CSS व्हेरिएबल आहे. रेषीय interpolation आणि अंकगणित त्या व्हेरिएबलच्या अचूक calc() अभिव्यक्ती बनतात, त्यामुळे प्रत्येक फ्रेम एकच लेखन असते आणि बाकीचे ब्राउझर मोजतो. Animated.<tag> एलिमेंट्सवरील मर्यादित transform आणि opacity मोशन फ्रेम callback शिवाय ब्राउझरमध्ये चालते.

  • ठिपक्यांची संख्या बदला: काउंटर दाखवतो की React प्रत्येक बदलासाठी एकदा रेंडर झाले, प्रति फ्रेम कधीही नाही.
  • scope मूल्य प्रत्येक एलिमेंटवर नाही, तर एका कंटेनरवर एकदा लिहिते.
  • inspect(element) प्रत्येक गुणधर्म कोणता मार्ग वापरतो आणि का ते सांगते.

उदाहरण तयार होत आहे…

03 · स्थिर

कुठेही व्यत्यय आणा. ते पुढे चालू राहते.

नवीन लक्ष्य एलिमेंट स्क्रीनवर जिथे आहे तिथून सुरू होते, आणि spring आपला वेगही राखतो, त्यामुळे मध्येच दिशा बदलल्यास आधी न थांबता सुरळीत वळते. हुकमध्ये घोषित केलेले कंट्रोलर बदलताना आणि अनमाउंटवेळी थांबवून मोकळे केले जातात, आणि सर्व्हरवर रेंडर झालेला मार्कअप hydration नंतरही ॲनिमेट होत राहतो.

  • दोनदा पटकन क्लिक करा: spring सह मार्ग वाकतो, timing सह स्थिती राखून नवीन वक्र सुरू होतो.
  • थांबवल्यावर मूल्य जिथे आहे तिथेच राहते; काहीही शेवटच्या स्थितीकडे उडी घेत नाही.
  • अनमाउंट, route बदल किंवा लपलेल्या टॅबनंतर भटकणारी फ्रेम लूप नाहीत.

उदाहरण तयार होत आहे…

Animated वर बांधलेले

तयार कंपोनंट हवा आहे? Animated Chorus.

घरंगळणारे आकडे, प्रवास करणारे टॅब हायलाइट, प्रगती, शीट्स आणि ॲनिमेटेड सूची — React आणि React Native मध्ये थेट बसतात. यापैकी तीन आत्ता या पानावर चालू आहेत.

Animated Chorus ला भेट द्या

शोधा

दस्तऐवजांमध्ये शोधण्यासाठी टाइप करा.