React · React Native · 16 komponens
Nehéz interakciók, készen.
Az Animated Chorus mozgáskomponensek gyűjteménye olyan interakciókhoz, amelyeket kézzel nehéz jól megcsinálni: pörgő számok, folyamatosan érkező szöveg, átméreteződő cserék, sheetek, lapozók, csúsztatásos műveletek és csak a változást animáló listák. Egy címke és az Ön adatai. Nincs provider, nincs beállítás.
npm install @kkwaenggwari/animated-chorusErre a kiadásra mérve
Chrome, 2026-09-28. Minden feltétel és minta a teljesítmény-útmutatóban található. Hogyan mértük
- 28.0KBKB gzip mind a 16 exportra
A teljes webes belépési pont, minifikálva. A React az egyetlen peer.
- 0JS-képkocka-callbackek animáció közben
Egy szám, egy magasság és egy kiemelés együtt változik: a böngésző mind a(z) 12 animációt lejátssza.
- 1React-commit értékváltozásonként
A
MotionNumberakkor renderel, amikor az érték változik, pörgés közben soha. - 11React-commitok 3000 folyamatosan érkező karakterre
A
MotionStreamközvetlenül hozzáfűzi a karaktereket, és másodpercenként néhányszor beolvasztja őket a Reactbe.
01A legegyszerűbb
Egy címke és az Ön adatai
Minden komponens önállóan működik: nincs provider, burkoló komponens vagy beállító hívás. A gyűjtemények items és renderItem értéket fogadnak, az elrendezés, a szöveg és a stílusok pedig az Önéi maradnak.
- Importáljon egy komponenst, és adjon át egy értéket. Ez a teljes integráció.
- A listák, fülek és lapozók az Ön tömbjét olvassák; a key alapértelmezése
item.id. - A szöveg valódi szöveg marad: tördelődik, a betűmérettel skálázódik, és kijelölhető.
<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} />;
Hat élő komponens, és mindegyik mögött egyetlen sor kód.
A példa előkészítése…
02A leggyorsabb
A böngésző játssza le. A React nyugton marad.
Weben nincs betöltendő animációs könyvtár: a komponensek a mozgást a Web Animations API-nak adják át, így egy pörgő szám vagy átméreteződő panel mozgás közben nem kerül képkockánkénti JavaScriptbe és React-renderelésbe.
- 0 JS-képkocka-callback, miközben 12 animáció fut együtt.
- Értékváltozásonként egy React-commit, nem képkockánként.
- Folyamatos szöveg: 11 React-commit 3000 karakterre. Az alábbi példa a saját rendereléseit számolja.
A példa előkészítése…
03A legstabilabb
Szakítson meg bármit. Soha nem ugrik.
Minden új érték onnan indul, ami a képernyőn van, a rugók pedig megtartják a sebességüket, így a gyors kattintások, adatlöketek és irányváltások szándékosnak hatnak. Amikor a mozgás véget ér, semmi sem fut tovább.
- A számok soha nem esnek szét: a maradó helyiértékek pörgés közben csúsznak.
- 200 új érték 5 ms-onként: utána 0 animáció marad, és a végső szöveg pontos.
- Biztonságos React StrictMode alatt. Háttérben futó React Native alkalmazásban a mozgás a végállapotba kerül.
A példa előkészítése…
16 komponens, feladatuk szerint csoportosítva
Számok és szöveg, méretét változtató tartalom, kiválasztás, listák, gesztusok, rétegek és haladás. Mindegyiknek van élő munkapadja, oldalt a props-okkal.
Összes komponensSzámok és szöveg
Tartalom és méret
Kiválasztás és lapozás
Listák
Gesztusok
Rétegek
Haladás
Összerakva
Több komponenst kombináló teljes képernyők, mindegyik beállításai a példán kívül.
Összes példa- Csevegési válaszÖsszecsukódó javaslatok, egyenletes ütemben érkező válasz és cserélődő állapotsor.
MotionStreamMotionListMotionSwapMotionHeight - Fizetési összesítőA mennyiségek, a sorösszegek és a végösszeg pörögnek, ahogy a kosár változik; a kuponértesítés be- és kilép; a fizetéshez szándékos lenyomva tartás kell.
MotionListMotionNumberMotionPresenceMotionHold - Beérkezett üzenetekSzűrőfülek élő számokkal, elcsúsztatható sorok és a rést bezáró lista.
MotionHighlightMotionListMotionSwipeMotionNumber - FotófolyamLapozzon a fotók között, ugorjon a bélyegképekkel, nyisson meg bármelyik fotót teljes képernyőn, és húzza fel a részleteit.
MotionPagerMotionHighlightMotionZoomMotionSheet
Ugyanaz az import weben és React Native alatt
A Metro a natív, a webes csomagolók a DOM-implementációt választják. Minden platform úgy játssza le a mozgást, ahogy a legjobban tudja.
// 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} />
</>
);
}| Rész | Web | React Native |
|---|---|---|
| Transzformációk és átlátszatlanság | Web Animations API, analitikusan mintavételezett rugók | Animated natív driverrel |
| Szélesség és magasság | Web Animations API | Animated JS-driverrel, mert ez elrendezés |
| Folyamatos szöveg | Hozzáfűzött és beúszó karakterek; másodpercenként néhány React-renderelés | Valódi Text, áttűnés nélkül megjelenítve |
| Sheetek és nagyítás | Natív dialog a legfelső rétegben | Átlátszó Modal; a vissza gomb bezárja |
Kezdés két perc alatt
Telepítse, importáljon egy komponenst, adjon át egy értéket.
npm install @kkwaenggwari/animated-chorus