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 సందర్శించండి

మూడు నిమిషాల్లో ప్రారంభించండి

ప్యాకేజీని ఇన్‌స్టాల్ చేసి, మొదటి విలువను కదిలించి, మీ ముందున్న పనికి గైడ్‌ను ఎంచుకోండి.

npm install @kkwaenggwari/animated

వెతకండి

డాక్యుమెంటేషన్‌లో వెతకడానికి టైప్ చేయండి.