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.

Asennus
npm install @kkwaenggwari/animated-chorus

Mitattu 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

    MotionNumber renderöityy, kun arvo muuttuu, ei koskaan pyöriessään.

  • 11React-commitit 3000 virtaavalle merkille

    MotionStream lisää 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 komponentit

Sama import webissä ja React Nativessa

Metro valitsee natiivitoteutuksen ja webin bundlerit DOM-toteutuksen. Kukin alusta toistaa liikkeen parhaalla tavallaan.

App.jsx
// 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} />
    </>
  );
}
OsaWebReact Native
Muunnokset ja peittävyysWeb Animations API, jouset analyyttisesti näytteistettyinäAnimated natiivilla driverilla
Leveys ja korkeusWeb Animations APIAnimated JS-driverilla, koska kyse on asettelusta
Virtaava tekstiMerkit lisätään ja häivytetään esiin; muutama React-renderöinti sekunnissaOikea Text, näytetään ilman häivytystä
Sheetit ja zoomausNatiivi dialog ylimmällä tasollaLäpinäkyvä Modal; takaisin-painike sulkee sen

Aloita kahdessa minuutissa

Asenna, importtaa yksi komponentti, anna arvo.

npm install @kkwaenggwari/animated-chorus

Haku

Kirjoita hakeaksesi dokumentaatiosta.