Kokeile
Valmistellaan esimerkkiä…
Lyhin käyttö
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;Mitä se hoitaa puolestasi
- Uudet kohteet saapuvat rajatulla porrastuksella, ja koskemattomat pysyvät paikallaan.
- Poistetut kohteet poistuvat virrasta ja animoituvat ulos paikallaan, kun muut liukuvat aukkoon.
- Uudelleen järjestetyt kohteet liukuvat uusiin sijainteihinsa.
- Toisen muutoksen keskeyttämät siirrot säilyttävät nopeutensa.
present={false}animoi jokaisen kohteen ulos, japlayKeytoistaa saapumisen uudelleen.
Käytä sitä
- Tehtävälista.
- Suodatetut hakutulokset.
- Ostoskori.
Props
| Prop | Tyyppi | Oletus | Kuvaus |
|---|---|---|---|
items | readonly T[] | —pakollinen | Datataulukkosi. |
getKey | (item) => string | number | item.id | Palauttaa kohteelle yksilöllisen, vakaan keyn. Oletuksena item.id, merkkijonoille ja luvuille kohde itse. |
renderItem | (item, index) => ReactNode | item.label | Piirtää kohteen. |
as | element | 'div' | Renderöitävä elementti. |
itemAs | element | 'li' | 'div' | Kunkin kohteen elementti. |
itemClassName | string | Luokka kullekin kohde-elementille; itemStyle asettaa sen inline-tyylin. | |
effect | 'rise' | 'fade' | 'scale' | 'slide' | 'rise' | Miten kohteet saapuvat ja poistuvat. |
distance | number | 16 | rise- ja slide-liikkeen matka pikseleinä. |
stagger | number | 40 | Millisekunnit saapuvien kohteiden välillä. |
order | 'forward' | 'reverse' | 'forward' | Porrastuksen suunta. |
present | boolean | true | false animoi jokaisen kohteen ulos asettelun säilyttäen; true tuo ne takaisin. |
initial | boolean | true | Toista saapuminen, kun lista kiinnitetään. |
playKey | string | number | Sen muuttaminen toistaa saapumisen uudelleen. | |
transition | Transition | spring | Siirtymä saapuville ja poistuville kohteille. |
layoutTransition | Transition | spring | Siirtymä uusiin sijainteihin liukuville kohteille. |
Muut props-arvot menevät renderöidylle elementille, joten className, style ja tapahtumankäsittelijät toimivat tavalliseen tapaan.
Web ja React Native
Jokainen kohde saa kääre-elementin (li ul- tai ol-elementin sisällä, muuten div; itemAs muuttaa sen), jota muotoillaan itemClassName-arvolla.
Keyjen on oltava yksilöllisiä. Kääri lista MotionHeight-komponenttiin animoidaksesi myös sen kokonaiskorkeuden.
Käytetty näissä esimerkeissä
- KeskusteluvastausEhdotukset, jotka taittuvat pois, tasaisella tahdilla virtaava vastaus ja vaihtuva tilarivi.
MotionStreamMotionListMotionSwapMotionHeight - Kassan yhteenvetoMäärät, rivisummat ja kokonaissumma pyörivät ostoskorin muuttuessa; kuponki-ilmoitus saapuu ja poistuu; maksaminen vaatii harkitun pitkän painalluksen.
MotionListMotionNumberMotionPresenceMotionHold - SaapuneetSuodatinvälilehdet live-laskureilla, pois pyyhkäistävät rivit ja lista, joka sulkee aukon.
MotionHighlightMotionListMotionSwipeMotionNumber