React · React Native · 16 கம்போனென்ட்கள்
கடினமான ஊடாடல்கள், முடிக்கப்பட்டவை.
Animated Chorus என்பது கையால் சரியாக அமைக்கக் கடினமான ஊடாடல்களுக்கான மோஷன் கம்போனென்ட்களின் தொகுப்பு: உருளும் எண்கள், ஸ்ட்ரீம் செய்யப்படும் உரை, அளவு மாறும் மாற்றீடுகள், sheet-கள், pager-கள், ஸ்வைப் செயல்கள், மாறியதை மட்டும் அனிமேட் செய்யும் பட்டியல்கள். ஒரே tag-உம் உங்கள் தரவும். Provider இல்லை, அமைப்பு இல்லை.
npm install @kkwaenggwari/animated-chorusஇந்த build-இல் அளக்கப்பட்டது
Chrome, 2026-09-28. ஒவ்வொரு நிபந்தனையும் மாதிரியும் செயல்திறன் வழிகாட்டியில் உள்ளன. இது எப்படி அளக்கப்பட்டது
- 28.0KB16 export-களுக்கும் KB gzip
முழு வலை நுழைவு, minify செய்யப்பட்டது. React மட்டுமே peer.
- 0அனிமேட் ஆகும்போது JS frame callback-கள்
ஒரு எண், ஒரு உயரம், ஒரு சிறப்பம்சம் சேர்ந்து மாறுகின்றன: 12 அனிமேஷன்களையும் உலாவி இயக்குகிறது.
- 1மதிப்பு மாற்றத்துக்கு ஒரு React commit
MotionNumberமதிப்பு மாறும்போது ரெண்டர் ஆகிறது, உருளும்போது ஒருபோதும் இல்லை. - 11ஸ்ட்ரீம் செய்யப்பட்ட 3000 எழுத்துகளுக்கு React commit-கள்
MotionStreamஎழுத்துகளை நேரடியாகச் சேர்த்து, வினாடிக்குச் சில முறை React-க்குள் இணைக்கிறது.
01மிக எளிது
ஒரே tag-உம் உங்கள் தரவும்
ஒவ்வொரு கம்போனென்டும் தனியாக இயங்குகிறது: Provider, wrapper கம்போனென்ட், அமைப்பு அழைப்பு இல்லை. தொகுப்புகள் items, renderItem-ஐ எடுக்கின்றன; உங்கள் லேஅவுட், உரை, style-கள் உங்களுடையவையாகவே இருக்கின்றன.
- ஒரு கம்போனென்டை import செய்து மதிப்பைக் கொடுங்கள். அதுவே முழு ஒருங்கிணைப்பு.
- பட்டியல்கள், தாவல்கள், pager-கள் உங்கள் அரேயைப் படிக்கின்றன; key இயல்பாக
item.id. - உரை உண்மையான உரையாகவே இருக்கிறது: மடிகிறது, எழுத்துருவுடன் அளவு மாறுகிறது, தேர்ந்தெடுக்கலாம்.
<MotionNumber value={total} />;<MotionSwap value={status}>{label}</MotionSwap>;<MotionHeight open={open}>{details}</MotionHeight>;<MotionHighlight items={tabs} value={tab} onValueChange={setTab} />;<MotionList items={tasks} renderItem={(task) => task.title} />;<ProgressRing value={progress} />;
ஆறு நேரடிக் கம்போனென்ட்கள், ஒவ்வொன்றின் பின்னும் உள்ள ஒரு வரிக் குறியீடு.
எடுத்துக்காட்டு தயாராகிறது…
02மிக வேகம்
உலாவி இயக்குகிறது. React அசையாமல் இருக்கிறது.
வலையில் ஏற்ற வேண்டிய அனிமேஷன் லைப்ரரி இல்லை: கம்போனென்ட்கள் தங்கள் மோஷனை Web Animations API-இடம் ஒப்படைக்கின்றன; அதனால் உருளும் எண்ணோ அளவு மாறும் பலகையோ நகரும்போது ஃப்ரேம்தோறும் JavaScript-உம் React ரெண்டரும் செலவாவதில்லை.
- 12 அனிமேஷன்கள் சேர்ந்து இயங்கும்போது 0 JS frame callback-கள்.
- மதிப்பு மாற்றத்துக்கு ஒரு React commit, ஃப்ரேமுக்கு ஒன்று அல்ல.
- ஸ்ட்ரீம் செய்யப்பட்ட உரை: 3000 எழுத்துகளுக்கு 11 React commit-கள். கீழே உள்ள எடுத்துக்காட்டு தன் ரெண்டர்களைத் தானே எண்ணுகிறது.
எடுத்துக்காட்டு தயாராகிறது…
03மிக நிலையானது
எதையும் இடைமறியுங்கள். அது ஒருபோதும் தாவாது.
ஒவ்வொரு புதிய மதிப்பும் திரையில் தெரிவதிலிருந்து தொடங்குகிறது, spring-கள் தங்கள் வேகத்தை வைத்திருக்கின்றன; அதனால் வேகமான கிளிக்குகள், தரவு வெடிப்புகள், திசை மாற்றங்கள் வேண்டுமென்றே செய்தவை போலத் தெரிகின்றன. மோஷன் முடியும்போது எதுவும் இயங்கிக்கொண்டிருப்பதில்லை.
- எண்கள் ஒருபோதும் பிளவுபடுவதில்லை: மீதமுள்ள இலக்கங்கள் உருளும்போதே நகர்கின்றன.
- 5 ms இடைவெளியில் 200 புதிய மதிப்புகள்: பிறகு மீதமுள்ள அனிமேஷன்கள் 0, இறுதி உரை துல்லியம்.
- React StrictMode-இல் பாதுகாப்பானது. பின்னணியில் உள்ள React Native ஆப்பில் மோஷன் தன் இறுதி நிலைக்கு அமைகிறது.
எடுத்துக்காட்டு தயாராகிறது…
16 கம்போனென்ட்கள், அவை செய்யும் பணியின்படி தொகுக்கப்பட்டவை
எண்களும் உரையும், அளவு மாறும் உள்ளடக்கம், தேர்வு, பட்டியல்கள், சைகைகள், overlay-கள், முன்னேற்றம். ஒவ்வொன்றுக்கும் பக்கத்தில் props கொண்ட நேரடிப் பணிமேசை உண்டு.
எல்லாக் கம்போனென்ட்களும்எண்களும் உரையும்
உள்ளடக்கமும் அளவும்
தேர்வும் பக்கமாற்றமும்
பட்டியல்கள்
சைகைகள்
Overlay-கள்
முன்னேற்றம்
ஒன்றாகச் சேர்த்து
பல கம்போனென்ட்களை இணைக்கும் முழுமையான திரைகள், ஒவ்வொன்றின் அமைப்புகளும் எடுத்துக்காட்டுக்கு வெளியே.
எல்லா எடுத்துக்காட்டுகளும்- அரட்டைப் பதில்மடிந்து மறையும் பரிந்துரைகள், நிலையான வேகத்தில் ஸ்ட்ரீம் ஆகும் பதில், மாறும் நிலை வரி.
MotionStreamMotionListMotionSwapMotionHeight - செக்அவுட் சுருக்கம்கூடை மாறும்போது அளவுகள், வரி மொத்தங்கள், மொத்தம் உருள்கின்றன; கூப்பன் அறிவிப்பு நுழைந்து வெளியேறுகிறது; பணம் செலுத்த வேண்டுமென்றே பிடிக்க வேண்டும்.
MotionListMotionNumberMotionPresenceMotionHold - Inboxநேரடி எண்ணிக்கைகளுடன் வடிகட்டித் தாவல்கள், ஸ்வைப் செய்து நீக்கக்கூடிய வரிசைகள், இடைவெளியை மூடும் பட்டியல்.
MotionHighlightMotionListMotionSwipeMotionNumber - புகைப்பட feedபுகைப்படங்களை ஸ்வைப் செய்யுங்கள், thumbnail-கள் மூலம் தாவுங்கள், எந்தப் புகைப்படத்தையும் முழுத் திரையில் திறந்து அதன் விவரங்களை மேலே இழுங்கள்.
MotionPagerMotionHighlightMotionZoomMotionSheet
வலையிலும் React Native-இலும் அதே import
Metro நேட்டிவ் செயலாக்கத்தையும் வலை bundler-கள் DOM செயலாக்கத்தையும் தேர்ந்தெடுக்கின்றன. ஒவ்வொரு தளமும் தனக்குச் சிறப்பாக வரும் வழியில் மோஷனை இயக்குகிறது.
// 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} />
</>
);
}| பகுதி | வலை | React Native |
|---|---|---|
| Transform-களும் opacity-உம் | Web Animations API, spring-கள் பகுப்பாய்வு முறையில் மாதிரியெடுக்கப்படுகின்றன | நேட்டிவ் driver உடன் Animated |
| அகலமும் உயரமும் | Web Animations API | JS driver உடன் Animated, ஏனெனில் இது லேஅவுட் |
| ஸ்ட்ரீம் செய்யப்படும் உரை | எழுத்துகள் சேர்க்கப்பட்டு மங்கித் தோன்றுகின்றன; வினாடிக்குச் சில React ரெண்டர்கள் | உண்மையான Text, மங்கல் இல்லாமல் வெளிப்படுகிறது |
| Sheet-களும் zoom-உம் | மேல் அடுக்கில் நேட்டிவ் dialog | ஒளிபுகும் Modal; பின் பொத்தான் அதை மூடுகிறது |
இரண்டு நிமிடங்களில் தொடங்குங்கள்
நிறுவுங்கள், ஒரு கம்போனென்டை import செய்யுங்கள், மதிப்பைக் கொடுங்கள்.
npm install @kkwaenggwari/animated-chorus