React · React Native · 16 komponenttia
Vaikeat vuorovaikutukset, valmiina.
Animated Chorus on joukko liikekomponentteja vuorovaikutuksiin, jotka on vaikea saada oikein käsin: pyörivät numerot, virtaava teksti, kokoa muuttavat vaihdot, sheetit, sivuttajat, pyyhkäisytoiminnot ja listat, jotka animoivat vain muuttuneen. Yksi tagi ja datasi. Ei provideria, ei alustusta.
npm install @kkwaenggwari/animated-chorusMitattu tällä julkaisulla
Chrome, 2026-09-28. Kaikki olosuhteet ja näytteet ovat suorituskykyoppaassa. Miten mitattiin
- 28.0KBKB gzip kaikille 16 exportille
Koko webin aloituspiste pienennettynä. React on ainoa peer.
- 0JS-ruutucallbackit animoinnin aikana
Luku, korkeus ja korostus muuttuvat yhdessä: selain toistaa kaikki 12 animaatiota.
- 1React-commit arvon muutosta kohden
MotionNumberrenderöityy, kun arvo muuttuu, ei koskaan pyöriessään. - 11React-commitit 3000 virtaavalle merkille
MotionStreamlisää merkit suoraan ja yhdistää ne Reactiin muutaman kerran sekunnissa.
01Helpoin
Yksi tagi ja datasi
Jokainen komponentti toimii itsenäisesti: ei provideria, käärekomponenttia eikä alustuskutsua. Kokoelmat ottavat items- ja renderItem-arvot, ja asettelu, teksti ja tyylit pysyvät sinun.
- Importtaa yksi komponentti ja anna arvo. Siinä koko integraatio.
- Listat, välilehdet ja sivuttajat lukevat taulukkosi; keyn oletus on
item.id. - Teksti pysyy oikeana tekstinä: se rivittyy, skaalautuu fontin mukana ja on valittavissa.
<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} />;
Kuusi live-komponenttia ja kunkin takana oleva yksi koodirivi.
Valmistellaan esimerkkiä…
02Nopein
Selain toistaa. React pysyy paikallaan.
Webissä ei ladata animaatiokirjastoa: komponentit antavat liikkeensä Web Animations API:lle, joten pyörivä numero tai kokoaan muuttava paneeli ei maksa liikkuessaan JavaScriptiä ruutua kohden eikä React-renderöintiä.
- 0 JS-ruutucallbackia, kun 12 animaatiota on käynnissä yhtä aikaa.
- Yksi React-commit arvon muutosta kohden, ei ruutua kohden.
- Virtaava teksti: 11 React-commitia 3000 merkille. Alla oleva esimerkki laskee omat renderöintinsä.
Valmistellaan esimerkkiä…
03Vakain
Keskeytä mitä tahansa. Se ei koskaan hyppää.
Jokainen uusi arvo alkaa siitä, mitä näytöllä on, ja jouset säilyttävät nopeutensa, joten nopeat napsautukset, datapurskeet ja suunnanmuutokset näyttävät tarkoituksellisilta. Kun liike päättyy, mitään ei jää käyntiin.
- Luvut eivät koskaan hajoa: jäljelle jäävät numeropaikat liukuvat pyöriessään.
- 200 uutta arvoa 5 ms:n välein: jäljelle jää 0 animaatiota ja tarkka lopputeksti.
- Turvallinen React StrictModessa. Taustalla olevassa React Native -sovelluksessa liike asettuu lopputilaansa.
Valmistellaan esimerkkiä…
16 komponenttia tehtävän mukaan ryhmiteltyinä
Numerot ja teksti, kokoa muuttava sisältö, valinta, listat, eleet, peitot ja edistyminen. Jokaisella on live-työpöytä, jonka sivussa ovat props-arvot.
Kaikki komponentitNumerot ja teksti
Sisältö ja koko
Valinta ja sivutus
Listat
Eleet
Peitot
Edistyminen
Yhdessä
Kokonaisia näkymiä, joissa yhdistyy useita komponentteja, ja kunkin asetukset ovat esimerkin ulkopuolella.
Kaikki esimerkit- KeskusteluvastausEhdotukset, jotka taittuvat pois, tasaisella tahdilla virtaava vastaus ja vaihtuva tilarivi.
MotionStreamMotionListMotionSwapMotionHeight - Kassan yhteenvetoMäärät, rivisummat ja kokonaissumma pyörivät ostoskorin muuttuessa; kuponki-ilmoitus saapuu ja poistuu; maksaminen vaatii harkitun pitkän painalluksen.
MotionListMotionNumberMotionPresenceMotionHold - SaapuneetSuodatinvälilehdet live-laskureilla, pois pyyhkäistävät rivit ja lista, joka sulkee aukon.
MotionHighlightMotionListMotionSwipeMotionNumber - KuvasyötePyyhkäise kuvien läpi, hyppää pikkukuvilla, avaa mikä tahansa kuva koko näytölle ja vedä sen tiedot ylös.
MotionPagerMotionHighlightMotionZoomMotionSheet
Sama import webissä ja React Nativessa
Metro valitsee natiivitoteutuksen ja webin bundlerit DOM-toteutuksen. Kukin alusta toistaa liikkeen parhaalla tavallaan.
// 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} />
</>
);
}| Osa | Web | React Native |
|---|---|---|
| Muunnokset ja peittävyys | Web Animations API, jouset analyyttisesti näytteistettyinä | Animated natiivilla driverilla |
| Leveys ja korkeus | Web Animations API | Animated JS-driverilla, koska kyse on asettelusta |
| Virtaava teksti | Merkit lisätään ja häivytetään esiin; muutama React-renderöinti sekunnissa | Oikea Text, näytetään ilman häivytystä |
| Sheetit ja zoomaus | Natiivi dialog ylimmällä tasolla | Läpinäkyvä Modal; takaisin-painike sulkee sen |
Aloita kahdessa minuutissa
Asenna, importtaa yksi komponentti, anna arvo.
npm install @kkwaenggwari/animated-chorus