MotionList
Een lijst uit data die alleen animeert wat veranderde.
WebReact NativeLijsten
Probeer het
Voorbeeld voorbereiden…
Kortste gebruik
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;Wat het voor je regelt
- Nieuwe items komen binnen met een begrensde cascade terwijl onaangeroerde items stil blijven staan.
- Verwijderde items verlaten de flow en animeren weg waar ze stonden, terwijl de rest opschuift om het gat te dichten.
- Herordende items glijden naar hun nieuwe plek.
- Bewegingen die door een andere wijziging worden onderbroken, behouden hun snelheid.
present={false}animeert elk item weg, enplayKeyspeelt het binnenkomen opnieuw af.
Gebruik het voor
- Een takenlijst.
- Gefilterde zoekresultaten.
- Een winkelwagen.
Props
| Prop | Type | Standaard | Beschrijving |
|---|---|---|---|
items | readonly T[] | —verplicht | Je data-array. |
getKey | (item) => string | number | item.id | Geeft een unieke, stabiele key voor een item terug. Standaard item.id, of het item zelf bij strings en getallen. |
renderItem | (item, index) => ReactNode | item.label | Tekent een item. |
as | element | 'div' | Het element dat wordt gerenderd. |
itemAs | element | 'li' | 'div' | Het element voor elk item. |
itemClassName | string | Class voor elk item-element; itemStyle zet de inline style. | |
effect | 'rise' | 'fade' | 'scale' | 'slide' | 'rise' | Hoe items binnenkomen en vertrekken. |
distance | number | 16 | Afstand van rise en slide in pixels. |
stagger | number | 40 | Milliseconden tussen binnenkomende items. |
order | 'forward' | 'reverse' | 'forward' | Richting van de cascade. |
present | boolean | true | false animeert elk item weg en behoudt de layout; true brengt ze terug. |
initial | boolean | true | Speel het binnenkomen af als de lijst mount. |
playKey | string | number | Wijzigen speelt het binnenkomen opnieuw af. | |
transition | Transition | spring | Overgang voor binnenkomende en vertrekkende items. |
layoutTransition | Transition | spring | Overgang voor items die naar een nieuwe plek glijden. |
Andere props gaan naar het gerenderde element, dus className, style en event handlers werken zoals gewoonlijk.
Web en React Native
Elk item krijgt een wrapper-element (li binnen ul of ol, anders div; itemAs verandert dat) met stijl via itemClassName.
Keys moeten uniek zijn. Wikkel de lijst in MotionHeight om ook de totale hoogte te animeren.
Gebruikt in deze voorbeelden
- ChatantwoordSuggesties die inklappen, een antwoord dat in een gelijkmatig tempo streamt en een statusregel die wisselt.
MotionStreamMotionListMotionSwapMotionHeight - AfrekenoverzichtAantallen, regeltotalen en het totaal rollen als de winkelwagen verandert; de couponmelding komt en gaat; betalen vraagt een bewuste druk.
MotionListMotionNumberMotionPresenceMotionHold - InboxFiltertabs met live tellingen, rijen die je kunt wegvegen en een lijst die het gat dicht.
MotionHighlightMotionListMotionSwipeMotionNumber