MotionList
Daftar dari data yang hanya menganimasikan yang berubah.
WebReact NativeDaftar
Coba
Menyiapkan contoh…
Penggunaan terpendek
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;Yang ditanganinya untuk Anda
- Item baru masuk dengan kaskade terbatas sementara item yang tak tersentuh tetap diam.
- Item yang dihapus keluar dari alur dan beranimasi keluar di tempatnya sementara sisanya bergeser mengisi celah.
- Item yang diurutkan ulang meluncur ke posisi barunya.
- Gerakan yang diinterupsi perubahan lain mempertahankan kecepatannya.
present={false}menganimasikan setiap item keluar, danplayKeymemutar ulang animasi masuk.
Gunakan untuk
- Daftar tugas.
- Hasil pencarian yang difilter.
- Keranjang belanja.
Props
| Prop | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
items | readonly T[] | —wajib | Array data Anda. |
getKey | (item) => string | number | item.id | Mengembalikan key yang unik dan stabil untuk sebuah item. Bawaannya item.id, atau item itu sendiri untuk string dan angka. |
renderItem | (item, index) => ReactNode | item.label | Menggambar item. |
as | element | 'div' | Elemen yang dirender. |
itemAs | element | 'li' | 'div' | Elemen untuk setiap item. |
itemClassName | string | Class untuk setiap elemen item; itemStyle mengatur gaya inline-nya. | |
effect | 'rise' | 'fade' | 'scale' | 'slide' | 'rise' | Cara item masuk dan pergi. |
distance | number | 16 | Jarak tempuh rise dan slide dalam piksel. |
stagger | number | 40 | Milidetik antar item yang masuk. |
order | 'forward' | 'reverse' | 'forward' | Arah kaskade. |
present | boolean | true | false menganimasikan setiap item keluar sambil mempertahankan tata letak; true mengembalikannya. |
initial | boolean | true | Putar animasi masuk saat daftar terpasang. |
playKey | string | number | Mengubahnya memutar ulang animasi masuk. | |
transition | Transition | spring | Transisi untuk item yang masuk dan pergi. |
layoutTransition | Transition | spring | Transisi untuk item yang meluncur ke posisi baru. |
Semua props lain diteruskan ke elemen yang dirender, jadi className, style, dan event handler bekerja seperti biasa.
Web dan React Native
Setiap item mendapat elemen pembungkus (li di dalam ul atau ol, selain itu div; itemAs mengubahnya) yang diberi gaya dengan itemClassName.
Key harus unik. Bungkus daftar dengan MotionHeight untuk menganimasikan tinggi totalnya juga.
Dipakai di contoh-contoh ini
- Jawaban obrolanSaran yang terlipat, jawaban yang mengalir dengan tempo stabil, dan baris status yang bertukar.
MotionStreamMotionListMotionSwapMotionHeight - Ringkasan checkoutJumlah, total per baris, dan total keseluruhan bergulir saat keranjang berubah; pemberitahuan kupon masuk dan pergi; membayar memerlukan tahanan yang disengaja.
MotionListMotionNumberMotionPresenceMotionHold - Kotak masukTab filter dengan hitungan langsung, baris yang bisa digeser pergi, dan daftar yang menutup celahnya.
MotionHighlightMotionListMotionSwipeMotionNumber