ลองดู
กำลังเตรียมตัวอย่าง…
การใช้งานที่สั้นที่สุด
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;สิ่งที่มันจัดการให้คุณ
- รายการใหม่เข้ามาแบบไล่ลำดับที่จำกัดเวลา ขณะที่รายการที่ไม่เปลี่ยนอยู่นิ่ง
- รายการที่ถูกลบจะออกจากโฟลว์และเคลื่อนไหวออกที่เดิม ขณะที่รายการที่เหลือเลื่อนเข้าช่องว่าง
- รายการที่ถูกจัดลำดับใหม่เลื่อนไปยังตำแหน่งใหม่อย่างนุ่มนวล
- การเคลื่อนที่ที่ถูกขัดด้วยการเปลี่ยนแปลงอื่นจะรักษาความเร็วไว้
present={false}ทำให้ทุกรายการเคลื่อนไหวออก และplayKeyเล่นการเข้าใหม่
ใช้สำหรับ
- รายการสิ่งที่ต้องทำ
- ผลการค้นหาที่กรองแล้ว
- ตะกร้าสินค้า
Props
| Prop | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
items | readonly T[] | —จำเป็น | อาร์เรย์ข้อมูลของคุณ |
getKey | (item) => string | number | item.id | คืน key ที่ไม่ซ้ำและคงที่ของรายการ ค่าเริ่มต้นคือ item.id หรือตัวรายการเองสำหรับสตริงและตัวเลข |
renderItem | (item, index) => ReactNode | item.label | วาดรายการ |
as | element | 'div' | องค์ประกอบที่จะเรนเดอร์ |
itemAs | element | 'li' | 'div' | องค์ประกอบของแต่ละรายการ |
itemClassName | string | คลาสของแต่ละองค์ประกอบรายการ itemStyle กำหนดสไตล์ inline ของมัน | |
effect | 'rise' | 'fade' | 'scale' | 'slide' | 'rise' | วิธีที่รายการเข้าและออก |
distance | number | 16 | ระยะเคลื่อนของ rise และ slide เป็นพิกเซล |
stagger | number | 40 | มิลลิวินาทีระหว่างรายการที่เข้ามา |
order | 'forward' | 'reverse' | 'forward' | ทิศทางของการไล่ลำดับ |
present | boolean | true | false ทำให้ทุกรายการเคลื่อนไหวออกโดยคงเลย์เอาต์ไว้ true นำกลับมา |
initial | boolean | true | เล่นการเข้าเมื่อรายการ mount |
playKey | string | number | การเปลี่ยนค่านี้จะเล่นการเข้าใหม่ | |
transition | Transition | spring | ทรานซิชันสำหรับรายการที่เข้าและออก |
layoutTransition | Transition | spring | ทรานซิชันสำหรับรายการที่เลื่อนไปตำแหน่งใหม่ |
props อื่นจะส่งต่อไปยังองค์ประกอบที่เรนเดอร์ className, style และตัวจัดการเหตุการณ์จึงทำงานตามปกติ
เว็บและ React Native
แต่ละรายการมีองค์ประกอบห่อ (li ภายใน ul หรือ ol นอกนั้นเป็น div และ itemAs เปลี่ยนได้) ที่ปรับสไตล์ด้วย itemClassName
key ต้องไม่ซ้ำ ห่อรายการด้วย MotionHeight เพื่อให้ความสูงรวมเคลื่อนไหวด้วย
ใช้ในตัวอย่างเหล่านี้
- คำตอบในแชตคำแนะนำที่พับเก็บ คำตอบที่สตรีมเข้ามาด้วยจังหวะคงที่ และบรรทัดสถานะที่สลับ
MotionStreamMotionListMotionSwapMotionHeight - สรุปการชำระเงินจำนวน ยอดต่อรายการ และยอดรวมหมุนเมื่อตะกร้าเปลี่ยน ประกาศคูปองเข้าและออก การชำระเงินต้องกดค้างอย่างตั้งใจ
MotionListMotionNumberMotionPresenceMotionHold - กล่องจดหมายแท็บตัวกรองพร้อมจำนวนแบบสด แถวที่ปัดทิ้งได้ และรายการที่ปิดช่องว่างเอง
MotionHighlightMotionListMotionSwipeMotionNumber