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.

Diegimas
npm install @kkwaenggwari/animated-chorus

Iš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ą

    MotionNumber perpiešiamas, kai pasikeičia reikšmė, niekada sukantis.

  • 11React commit 3000 srautiniams simboliams

    MotionStream prideda 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 komponentai

Tas pats importas žiniatinklyje ir React Native

Metro pasirenka vietinį įgyvendinimą, o žiniatinklio bundler – DOM. Kiekviena platforma groja judesį taip, kaip jai geriausiai sekasi.

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} />
    </>
  );
}
DalisŽiniatinklisReact Native
Transformacijos ir neskaidrumasWeb Animations API, spyruoklės imamos analitiškaiAnimated su vietiniu driver
Plotis ir aukštisWeb Animations APIAnimated su JS driver, nes tai išdėstymas
Srautinis tekstasSimboliai pridedami ir palaipsniui išryškinami; keli React perpiešimai per sekundęTikras Text, rodomas be išryškinimo
Sheet ir mastelisVietinis dialog viršutiniame sluoksnyjePermatomas Modal; jį uždaro mygtukas atgal

Pradėkite per dvi minutes

Įdiekite, importuokite vieną komponentą, perduokite reikšmę.

npm install @kkwaenggwari/animated-chorus

Paieška

Rašykite, kad ieškotumėte dokumentacijoje.