Začínáme · 4 kroky
Začínáme
Nainstalujte balíček, vyrenderujte první komponentu, dejte jí svá data a zvolte, jak se pohybuje. V žádném kroku není potřeba provider ani nastavení.
Instalace
Chorus vyžaduje React 19.2 nebo novější. V aplikaci React Native je React Native volitelnou peer závislostí a stejný balíček automaticky vybere své nativní sestavení.
npm install @kkwaenggwari/animated-chorusNic dalšího k nastavení: žádný provider, plugin ani styl k přidání.
Vaše první komponenta
Vyrenderujte
MotionNumbers hodnotou ze stavu. Změňte stav a číslo se protočí. Stiskněte+1a pak×10a uvidíte, jak se vroluje nový řád.App.jsx import { useState } from 'react'; import { MotionNumber } from '@kkwaenggwari/animated-chorus'; export default function App() { const [count, setCount] = useState(9); return ( <button onClick={() => setCount(count + 1)}> <MotionNumber value={count} /> </button> ); }Příprava příkladu…
V nastavení přepněte
modenaroll: změněné řády projdou číslicemi mezi.Dejte jí svá data
Komponenty, které zobrazují více věcí, přijímají pole.
itemsjsou vaše data,getKeyvrací stabilní klíč (ve výchozím stavuitem.id, u řetězců a čísel samotnou položku) arenderItemvykreslí každou položku. Komponenta prvky položek renderuje a měří za vás.Tabs.jsx import { MotionHighlight } from '@kkwaenggwari/animated-chorus'; const tabs = [ { id: 'overview', label: 'Overview' }, { id: 'activity', label: 'Activity' }, ]; export function Tabs({ tab, setTab }) { // Keys come from item.id; labels from item.label, or renderItem. return <MotionHighlight items={tabs} value={tab} onValueChange={setTab} />; }Klíče musí být jedinečné. Když se pole změní, animují se jen položky, které přibyly, odešly nebo se přesunuly.
Zvolte, jak se pohybuje
Každá komponenta přijímá
transition: křivku timing nebo pružinu.motionTokensnabízí několik předvoleb a pružina sdurationje kalibrovaná tak, aby skončila přesně tehdy.Panel.jsx import { MotionHeight, motionTokens } from '@kkwaenggwari/animated-chorus'; <MotionHeight open={open} transition={motionTokens.spring.gentle}>…</MotionHeight> <MotionHeight open={open} transition={{ duration: 300, easing: 'easeOut' }}>…</MotionHeight> <MotionHeight open={open} transition={{ tempo: 'spring', spring: { stiffness: 300, damping: 30 }, duration: 500 }}>…</MotionHeight>React Native používá stejný import i stejné props.
To je celé nastavení
Zbytek je výběr komponent. Každá má pracovní stůl, kde ji můžete doladit, než zkopírujete kód.