React · React Native · 16 komponentų
Sudėtingos sąveikos, užbaigtos.
Animated Chorus yra judesio komponentų rinkinys sąveikoms, kurias sunku teisingai padaryti rankomis: besisukantys skaičiai, srautinis tekstas, dydį keičiantys pakeitimai, sheet, puslapiuotuvai, braukimo veiksmai ir sąrašai, kurie animuoja tik tai, kas pasikeitė. Viena žymė ir jūsų duomenys. Jokio provider, jokio nustatymo.
npm install @kkwaenggwari/animated-chorusIšmatuota šiame leidime
Chrome, 2026-09-28. Visos sąlygos ir pavyzdžiai yra našumo vadove. Kaip buvo matuota
- 28.0KBKB gzip visiems 16 eksportų
Visas žiniatinklio įėjimo taškas, sumažintas. React yra vienintelis peer.
- 0JS kadrų callback animuojant
Skaičius, aukštis ir paryškinimas keičiasi kartu: naršyklė groja visas 12 animacijas.
- 1React commit per reikšmės pakeitimą
MotionNumberperpiešiamas, kai pasikeičia reikšmė, niekada sukantis. - 11React commit 3000 srautiniams simboliams
MotionStreamprideda simbolius tiesiogiai ir kelis kartus per sekundę įtraukia juos į React.
01Paprasčiausia
Viena žymė ir jūsų duomenys
Kiekvienas komponentas veikia savarankiškai: jokio provider, apgaubiančio komponento ar nustatymo kvietimo. Kolekcijos priima items ir renderItem, o jūsų išdėstymas, tekstas ir stiliai lieka jūsų.
- Importuokite vieną komponentą ir perduokite reikšmę. Tai visa integracija.
- Sąrašai, skirtukai ir puslapiuotuvai skaito jūsų masyvą; key pagal numatymą yra
item.id. - Tekstas lieka tikru tekstu: jis kelia eilutes, keičia dydį pagal šriftą ir gali būti pažymėtas.
<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} />;
Šeši gyvi komponentai ir po kiekvienu esanti viena kodo eilutė.
Ruošiamas pavyzdys…
02Greičiausia
Groja naršyklė. React lieka ramus.
Žiniatinklyje nereikia įkelti animacijos bibliotekos: komponentai perduoda savo judesį Web Animations API, todėl besisukantis skaičius ar dydį keičiantis skydelis judėdamas nekainuoja JavaScript per kadrą ir jokio React perpiešimo.
- 0 JS kadrų callback, kol kartu veikia 12 animacijos.
- Vienas React commit per reikšmės pakeitimą, o ne per kadrą.
- Srautinis tekstas: 11 React commit 3000 simboliams. Žemiau esantis pavyzdys skaičiuoja savo perpiešimus.
Ruošiamas pavyzdys…
03Stabiliausia
Pertraukite bet ką. Niekada nešokinėja.
Kiekviena nauja reikšmė prasideda nuo to, kas yra ekrane, o spyruoklės išlaiko greitį, todėl greiti paspaudimai, duomenų pliūpsniai ir apsisukimai atrodo tyčiniai. Kai judesys baigiasi, niekas nelieka veikti.
- Skaičiai niekada nesuskyla: likę skaitmenys slenka sukdamiesi.
- 200 naujos reikšmės kas 5 ms: po to lieka 0 animacijų ir tikslus galutinis tekstas.
- Saugu su React StrictMode. Fone veikiančioje React Native programoje judesys nusistovi galutinėje būsenoje.
Ruošiamas pavyzdys…
16 komponentai, sugrupuoti pagal atliekamą darbą
Skaičiai ir tekstas, dydį keičiantis turinys, pasirinkimas, sąrašai, gestai, perdangos ir eiga. Kiekvienas turi gyvą darbo stalą su props šone.
Visi komponentaiSkaičiai ir tekstas
Turinys ir dydis
Pasirinkimas ir puslapiavimas
Sąrašai
Gestai
Perdangos
Eiga
Sujungta
Išbaigti ekranai, jungiantys kelis komponentus, kiekvienas su nustatymais už pavyzdžio ribų.
Visi pavyzdžiai- Pokalbio atsakymasSusilankstantys pasiūlymai, pastoviu tempu srautu ateinantis atsakymas ir besikeičianti būsenos eilutė.
MotionStreamMotionListMotionSwapMotionHeight - Atsiskaitymo suvestinėKiekiai, eilučių sumos ir bendra suma sukasi keičiantis krepšeliui; kupono pranešimas įeina ir išeina; mokėjimui reikia sąmoningo palaikymo.
MotionListMotionNumberMotionPresenceMotionHold - Pašto dėžutėFiltrų skirtukai su gyvais skaičiais, braukiamos eilutės ir sąrašas, uždarantis tarpą.
MotionHighlightMotionListMotionSwipeMotionNumber - Nuotraukų srautasBraukite per nuotraukas, šokinėkite miniatiūromis, atidarykite bet kurią nuotrauką per visą ekraną ir ištraukite jos informaciją.
MotionPagerMotionHighlightMotionZoomMotionSheet
Tas pats importas žiniatinklyje ir React Native
Metro pasirenka vietinį įgyvendinimą, o žiniatinklio bundler – DOM. Kiekviena platforma groja judesį taip, kaip jai geriausiai sekasi.
// 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} />
</>
);
}| Dalis | Žiniatinklis | React Native |
|---|---|---|
| Transformacijos ir neskaidrumas | Web Animations API, spyruoklės imamos analitiškai | Animated su vietiniu driver |
| Plotis ir aukštis | Web Animations API | Animated su JS driver, nes tai išdėstymas |
| Srautinis tekstas | Simboliai pridedami ir palaipsniui išryškinami; keli React perpiešimai per sekundę | Tikras Text, rodomas be išryškinimo |
| Sheet ir mastelis | Vietinis dialog viršutiniame sluoksnyje | Permatomas Modal; jį uždaro mygtukas atgal |
Pradėkite per dvi minutes
Įdiekite, importuokite vieną komponentą, perduokite reikšmę.
npm install @kkwaenggwari/animated-chorus