मार्गदर्शक · 02
वेब आणि React Native
दोन्ही प्लॅटफॉर्मसाठी एकच import. Metro नेटिव्ह अंमलबजावणी निवडतो आणि वेब बंडलर DOM अंमलबजावणी.
तेच import
एक पॅकेज इन्स्टॉल करा आणि दोन्ही प्लॅटफॉर्मवर त्याच्या मुळापासून import करा. React हा एकमेव आवश्यक peer आहे; नेटिव्ह ॲपसाठी React Native ऐच्छिक peer आहे. कोणत्याही प्लॅटफॉर्मला Provider, रॅपर किंवा सेटअप कॉल लागत नाही.
// Web and React Native: the same import.
import { MotionNumber, MotionList } from '@kkwaenggwari/animated-chorus';
export function Score({ points, players }) {
return (
<>
<MotionNumber value={points} />
<MotionList items={players} renderItem={(player) => player.name} />
</>
);
}मोशन कसे चालते
वेबवर कंपोनंट विश्लेषणात्मक पद्धतीने नमुने घेतलेल्या spring सह Web Animations API वर चालतात, त्यामुळे लोड करायची ॲनिमेशन लायब्ररी नाही आणि प्रति फ्रेम React रेंडर नाही. React Native वर कंपोनंट transform आणि opacity साठी नेटिव्ह driver सह Animated वापरतात, आणि लेआउट (रुंदी किंवा उंची) बदलतो तिथेच JS driver.
| भाग | वेब | React Native |
|---|---|---|
| Transform आणि opacity | Web Animations API | Animated, नेटिव्ह driver |
| रुंदी आणि उंची | Web Animations API | Animated, JS driver |
| स्ट्रीम होणारा मजकूर | फिकटपणे येणारी अक्षरे, सेकंदाला काही React रेंडर | खरा Text, फिकटपणा नाही |
| शीट्स आणि झूम | वरच्या थरात नेटिव्ह dialog | पारदर्शक Modal |
| पार्श्वभूमी | लपलेल्या टॅबमध्ये स्ट्रीम मजकूर लगेच दिसतो | मोशन अंतिम स्थितीत स्थिरावते |
React Native ची वैशिष्ट्ये
API तेच आहे; उपकरणावर तुम्हाला जाणवणारे फरक हे आहेत.
- संख्या आणि स्ट्रीम मजकूर खरा
Textराहतात, त्यामुळे निवड, गुंडाळणे,numberOfLinesआणि सुलभता नेहमीप्रमाणे चालतात. MotionSheetआणिMotionZoomपारदर्शकModalमध्ये रेंडर होतात, आणि मागे बटण त्यांना बंद करते.- शीटमधील आतील
ScrollViewत्यांचे स्वतःचे हावभाव राखतात; शीट तिच्या हँडल आणि स्थिर भागांतून ओढली जाते. MotionHoldसुलभता activate क्रियेतून थेट निश्चित करतो.- Inline
MotionSwapनवीन मजकूर एका ओळीत मोजतो; गुंडाळणाऱ्या मजकुरासाठीinline=—वापरा.
import { Text, View } from 'react-native';
import { MotionNumber, MotionSheet } from '@kkwaenggwari/animated-chorus';
export function Wallet({ balance, open, setOpen }) {
return (
<View>
<MotionNumber
value={balance}
intl
locale="en-US"
format={{ style: 'currency', currency: 'USD' }}
/>
<MotionSheet open={open} onOpenChange={setOpen} detents={[0.5, 0.9]}>
<Text>Recent activity</Text>
</MotionSheet>
</View>
);
}तुमचा लेआउट तुमचाच राहतो
कंपोनंट प्लॅटफॉर्मचा स्वतःचा लेआउट राखतात: मजकुराचे माप, गुंडाळणे, फॉन्ट स्केलिंग, पालकाच्या मर्यादा आणि तुमच्या शैली. मोशन तुमच्या मजकुरावर अक्षर रुंदी, निश्चित मजकूर उंची किंवा क्लिपिंग मास्क कधीही लादत नाही.
काय कुठे सत्यापित केले जाते
वेब वर्तन खऱ्या ब्राउझरमध्ये सत्यापित केले जाते. React Native वर्तन सामायिक मॉडेलच्या चाचण्या आणि नक्कली रेंडररने समाविष्ट केले जाते, त्यामुळे प्रकाशनापूर्वी तुमच्या लक्ष्य उपकरणांवर हावभाव आणि लेआउट तपासा.