كل المكوّنات

MotionList

قائمة من البيانات لا تحرّك إلا ما تغيّر.

الويبReact Nativeالقوائم

جرّبه

جارٍ تجهيز المثال…

أقصر استخدام

Todos.jsx
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;

ما يتولّاه عنك

  • تدخل العناصر الجديدة بتتابع محدود بينما تبقى العناصر غير المتأثرة ثابتة.
  • تخرج العناصر المحذوفة من التدفق وتتحرك خارجة في مكانها بينما ينزلق الباقي لسدّ الفراغ.
  • تنزلق العناصر المعاد ترتيبها إلى مواضعها الجديدة.
  • التحرّكات التي يقاطعها تغيير آخر تحتفظ بسرعتها.
  • يحرّك present={false} كل العناصر خارجة، ويعيد playKey تشغيل الدخول.

استخدمه لـ

  • قائمة مهام.
  • نتائج بحث مصفّاة.
  • سلة تسوّق.

Props

Propالنوعالافتراضيالوصف
itemsreadonly T[]—إلزاميمصفوفة بياناتك.
getKey(item) => string | numberitem.idتعيد مفتاحًا فريدًا ثابتًا لعنصر. افتراضيًا item.id، أو العنصر نفسه للنصوص والأرقام.
renderItem(item, index) => ReactNodeitem.labelيرسم عنصرًا.
aselement'div'العنصر المراد عرضه.
itemAselement'li' | 'div'العنصر لكل بند.
itemClassNamestringصنف لعنصر كل بند؛ ويضبط itemStyle نمطه المضمّن.
effect'rise' | 'fade' | 'scale' | 'slide''rise'كيف تدخل العناصر وتخرج.
distancenumber16مسافة rise وslide بالبكسل.
staggernumber40مللي ثوانٍ بين العناصر الداخلة.
order'forward' | 'reverse''forward'اتجاه التتابع.
presentbooleantrueيحرّك false كل العناصر خارجة مع الحفاظ على التخطيط؛ ويعيدها true.
initialbooleantrueشغّل الدخول حين تُركَّب القائمة.
playKeystring | numberتغييره يعيد تشغيل الدخول.
transitionTransitionspringالانتقال للعناصر الداخلة والخارجة.
layoutTransitionTransitionspringالانتقال للعناصر المنزلقة إلى مواضع جديدة.

تذهب props الأخرى إلى العنصر المعروض، فتعمل className وstyle ومعالجات الأحداث كالمعتاد.

الويب وReact Native

يحصل كل عنصر على عنصر غلاف (li داخل ul أو ol، وإلا div؛ ويغيّره itemAs) منسّق عبر itemClassName.

يجب أن تكون المفاتيح فريدة. غلّف القائمة في MotionHeight لتحريك ارتفاعها الكلي أيضًا.

مستخدم في هذه الأمثلة

بحث

اكتب للبحث في التوثيق.