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