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-లో ఉన్న అవే కాల్లు
// 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 మార్పులు, దాచిన ట్యాబ్ల తర్వాత తిరుగాడే ఫ్రేమ్ లూప్లు ఉండవు.
ఉదాహరణ సిద్ధమవుతోంది…
- అయస్కాంత డాక్పాయింటర్ దాటుతున్నప్పుడు ఐకాన్లు పెరిగి, పొరుగువాటిని పక్కకు తోసి, అది వెళ్లిపోయినప్పుడు స్థిరపడతాయి.
moveInputfollowuseAnimatedCSSmultiply - స్వైప్ డెక్పై కార్డ్ను లాగండి. పరిమితి దాటితే ఎగిరిపోతుంది; లేకపోతే springతో తిరిగి వస్తుంది.
dragInputuseAnimatedListenerAnimated.div - పంచుకున్న గ్యాలరీఒక టైల్ వివరాల వీక్షణగా పెరిగి, మళ్లీ గ్రిడ్లోకి కుంచించుకుంటుంది.
Animated.SceneAnimated.Keepmove
Animatedపై నిర్మితం
పూర్తయిన కాంపోనెంట్ కావాలా? Animated Chorus.
దొర్లే సంఖ్యలు, ప్రయాణించే ట్యాబ్ హైలైట్లు, పురోగతి, షీట్లు, యానిమేటెడ్ జాబితాలు — React, React Native-లో నేరుగా సరిపోతాయి. వీటిలో మూడు ఇప్పుడు ఈ పేజీలో నడుస్తున్నాయి.
Animated Chorus సందర్శించండిమూడు నిమిషాల్లో ప్రారంభించండి
ప్యాకేజీని ఇన్స్టాల్ చేసి, మొదటి విలువను కదిలించి, మీ ముందున్న పనికి గైడ్ను ఎంచుకోండి.
npm install @kkwaenggwari/animated