React · React Native · 16 komponenti
Teške interakcije, gotove.
Animated Chorus skup je komponenti pokreta za interakcije koje je teško ručno napraviti kako treba: brojevi koji se vrte, tekst koji pristiže u streamu, zamjene koje mijenjaju veličinu, sheetovi, pageri, radnje povlačenjem i popisi koji animiraju samo ono što se promijenilo. Jedna oznaka i vaši podaci. Bez providera, bez postavljanja.
npm install @kkwaenggwari/animated-chorusIzmjereno na ovoj izgradnji
Chrome, 2026-09-28. Svi uvjeti i uzorci nalaze se u vodiču o performansama. Kako je izmjereno
- 28.0KBKB gzip za svih 16 exporta
Cijela ulazna točka za web, minificirana. React je jedina peer ovisnost.
- 0JS callbackovi kadrova tijekom animacije
Broj, visina i isticanje mijenjaju se zajedno: preglednik reproducira svih 12 animacija.
- 1Reactov commit po promjeni vrijednosti
MotionNumberse renderira kad se vrijednost promijeni, nikad dok se vrti. - 11Reactovi commitovi za 3000 znakova iz streama
MotionStreamizravno dodaje znakove i u React ih predaje samo nekoliko puta u sekundi.
01Najjednostavnije
Jedna oznaka i vaši podaci
Svaka komponenta radi samostalno: bez providera, omotačke komponente ili poziva za postavljanje. Kolekcije primaju items i renderItem, a vaš raspored, tekstovi i stilovi ostaju vaši.
- Uvezite jednu komponentu i predajte vrijednost. To je cijela integracija.
- Popisi, kartice i pageri čitaju vaš niz; ključevi su prema zadanom
item.id. - Tekst ostaje pravi tekst: prelama se, skalira s fontom i može se označiti.
<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} />;
Šest komponenti uživo i jedan redak koda iza svake.
Priprema primjera…
02Najbrže
Reproducira preglednik. React miruje.
Na webu nema biblioteke animacija za učitavanje: komponente predaju pokret Web Animations API-ju, pa broj koji se vrti ili ploča koja mijenja veličinu ne koštaju ni JavaScript po kadru ni Reactovo renderiranje dok se kreću.
- 0 JS callbackova kadrova dok 12 animacija radi zajedno.
- Jedan Reactov commit po promjeni vrijednosti, ne jedan po kadru.
- Tekst iz streama: 11 Reactovih commitova za 3000 znakova. Primjer ispod broji vlastita renderiranja.
Priprema primjera…
03Najstabilnije
Prekinite bilo što. Ništa ne skače.
Svaka nova vrijednost počinje od onoga što je na zaslonu, a opruge zadržavaju brzinu, pa brzi klikovi, naleti podataka i okretanja izgledaju namjerno. Kad pokret završi, ništa ne ostaje pokrenuto.
- Brojevi se nikad ne raspadaju: preostala mjesta klize dok se vrte.
- 200 novih vrijednosti u razmaku od 5 ms: nakon toga ostaje 0 animacija i točan završni tekst.
- Sigurno u React StrictModeu. U React Native aplikaciji u pozadini pokret prelazi u završno stanje.
Priprema primjera…
16 komponenti grupiranih prema zadatku
Brojevi i tekst, sadržaj promjenjive veličine, odabir, popisi, geste, slojevi i napredak. Svaka ima radni stol uživo s props sa strane.
Sve komponenteBrojevi i tekst
Sadržaj i veličina
Odabir i stranice
Popisi
Geste
Slojevi
Napredak
Zajedno
Cjeloviti zasloni koji kombiniraju više komponenti, svaki s postavkama izvan primjera.
Svi primjeri- Odgovor u chatuPrijedlozi koji se sklapaju, odgovor koji pristiže ujednačenim tempom i redak statusa koji se zamjenjuje.
MotionStreamMotionListMotionSwapMotionHeight - Sažetak blagajneKoličine, zbrojevi redaka i ukupni iznos vrte se dok se košarica mijenja; obavijest o kuponu ulazi i odlazi; plaćanje traži namjerno držanje.
MotionListMotionNumberMotionPresenceMotionHold - Pristigla poštaKartice filtara s brojevima uživo, retci koji se mogu odbaciti povlačenjem i popis koji zatvara prazninu.
MotionHighlightMotionListMotionSwipeMotionNumber - Feed fotografijaListajte fotografije povlačenjem, skačite preko minijatura, otvorite bilo koju fotografiju na cijelom zaslonu i povucite njezine pojedinosti prema gore.
MotionPagerMotionHighlightMotionZoomMotionSheet
Isti import na webu i u React Nativeu
Metro bira nativnu implementaciju, a web bundleri onu za DOM. Svaka platforma reproducira pokret onako kako najbolje zna.
// 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} />
</>
);
}| Dio | Web | React Native |
|---|---|---|
| Transformacije i opacity | Web Animations API, opruge uzorkovane analitički | Animated s nativnim driverom |
| Širina i visina | Web Animations API | Animated s JS driverom jer je riječ o rasporedu |
| Tekst iz streama | Znakovi se dodaju i postupno pojavljuju; nekoliko Reactovih renderiranja u sekundi | Pravi Text, otkriven bez prelijevanja |
| Sheetovi i zumiranje | Nativni dialog u gornjem sloju | Prozirni Modal; zatvara ga gumb za natrag |
Započnite za dvije minute
Instalirajte, uvezite jednu komponentu, predajte vrijednost.
npm install @kkwaenggwari/animated-chorus