0Pricing
React Academy · درس

‏useTrail وuseChain للتسلسلات

وزّع التحريكات تدريجيًا على عناصر متعددة باستخدام useTrail، ونسّق التسلسلات باستخدام useChain

‏useTrail وuseChain للتسلسلات درس مجاني في React Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.

استخدام useTrail للتحريك المتعاقب

ينشئ useTrail(count, config) عددًا من النوابض يساوي count، وتتحرك هذه النوابض بالتتابع مع تأخير قابل للضبط بين كل منها. عند بدء المسار، يتحرك العنصر الأول فورًا، ثم يبدأ الثاني بعده بقليل، يليه الثالث، وهكذا، مما ينشئ تأثير الانتشار أو التتابع.

القيمة المعادة من useTrail

يعيد useTrail مصفوفة من كائنات النابض، كائنًا لكل عنصر في المسار. ويملك كل نابض البنية نفسها، أي المفاتيح نفسها، لكنه يبدأ تحريكه عند إزاحة زمنية مختلفة. ويمكنكم إجراء تكرار متزامن على مصفوفة المسار ومصفوفة العناصر لعرض كل عنصر متحرك باستخدام النابض المطابق له.

تطبيق المسار على قائمة

اعرضوا قائمة ذات تحريك متعاقب عبر إجراء تكرار على مصفوفة المسار: trail.map((spring, i) => React.createElement(animated.div, { style: spring, key: items[i].id }, items[i].content)). يتلقى كل animated.div كائن نابض خاصًا به، لذلك تتحرك العناصر بالتتابع. وتعمل النوابض بترتيب الفهارس: 0، 1، 2، 3...

التحكم في اتجاه المسار

يدعم useTrail نمط التبديل للتحريك إلى الأمام والعكس. مرّروا حالة منطقية باسم open للتحكم في الاتجاه: عندما تكون open هي true، يتحرك المسار من مخفي إلى ظاهر؛ وعندما تكون false، ينعكس من ظاهر إلى مخفي. وينعكس ترتيب المسار تلقائيًا، فتتحرك العناصر إلى الخارج بترتيب عكسي، أي الأخير دخولًا هو الأول خروجًا.

إعدادات المسار وتوقيته

كائن الإعدادات في useTrail هو نفسه المستخدم في useSpring: tension وfriction وmass. ويتحدد التأخير بين العناصر بالمدة التي يستغرقها كل نابض لبدء التحريك، وتتحكم في ذلك فيزياء النابض العامة. وتؤدي النوابض الأكثر صلابة ذات tension الأعلى إلى تعاقب أسرع، بينما تنشئ النوابض الألطف تتابعات أطول.

استخدام useSpringRef مع useChain

ينشئ useSpringRef() مرجعًا تربطونه بخطاف النابض عبر الخيار ref. ويمنح المرجع useChain التحكم في وقت بدء ذلك النابض. أنشئوا مرجعًا واحدًا لكل نابض أو مسار تريدون تنظيمه بالتتابع: const springRef = useSpringRef()، ثم مرّروه هكذا: useSpring({ ref: springRef, ... }).

استخدام useChain للتنسيق التسلسلي

ينظّم useChain([ref1, ref2, ref3], [0, 0.5, 0.8]) عدة نوابض أو مسارات بالتتابع. الوسيط الأول هو مصفوفة من springRefs مرتبة حسب تسلسل تشغيلها. أما الوسيط الثاني فهو مصفوفة من الطوابع الزمنية بين 0 و1، وتحدد متى يبدأ كل نابض بوصف ذلك جزءًا من الإطار الزمني الكلي.

دلالة الطوابع الزمنية في useChain

في useChain، تعني طوابع زمنية مثل [0, 0.5] أن النابض 1 يبدأ عند 0% من التسلسل، وأن النابض 2 يبدأ عند 50% منه. أما الوسيط الثالث الاختياري فهو الإطار الزمني الكلي بالمللي ثانية، وقيمته الافتراضية 1000ms. لذلك، مع [0, 0.5] و2000ms، يبدأ النابض 1 عند 0ms ويبدأ النابض 2 عند 1000ms.

مثال عملي على useChain

من الأنماط الشائعة تحريك حاوية لتتسع باستخدام useSpring للحجم، ثم تحريك العناصر داخلها لتظهر تدريجيًا باستخدام useTrail للقائمة. اربطوا مرجعًا بكل منهما، ثم استخدموا useChain([sizeRef, trailRef], [0, 0.5]) لتتسع الحاوية أولًا، ثم تبدأ العناصر بالظهور في منتصف العملية. ينشئ ذلك تحريك ظهور سينمائيًا من مرحلتين.

أنماط انتقال الصفحات

يُعد useChain مناسبًا جدًا لانتقالات الصفحات. عند التنقل بين الصفحات، نسّقوا تحريك خروج الصفحة القديمة مع تحريك دخول الصفحة الجديدة. يكتمل الخروج أولًا، عند الطابع الزمني 0، ثم يبدأ الدخول عند الطابع الزمني 0.6. وينشئ ذلك انتقالًا سلسًا بدلًا من التبديل المفاجئ.

تأثير Parallax باستخدام useTrail

يمكن لـ useTrail إنشاء تأثيرات تمرير Parallax عبر تحريك العناصر بسرعات مختلفة بناءً على موضعها في المسار. تبدأ العناصر الأعمق في المسار لاحقًا، وقد تستخدم إعدادات مختلفة، مثل tension أقل، مما يجعلها تتحرك ببطء أكبر. ويحاكي هذا التوقيت المعتمد على العمق تأثير Parallax للعناصر الموجودة على مسافات مختلفة.

آلية التحريك المتعاقب في useTrail

كيف ينشئ useTrail التأخير المتعاقب بين العناصر أثناء التحريك؟

مراجعة الدرس: useTrail وuseChain

ينشئ useTrail(count, config) عددًا من النوابض يساوي count، وتتحرك بالتتابع لإنشاء ظهور متعاقب للقوائم. أجروا تكرارًا متزامنًا على المسار والعناصر لعرضها. ينشئ useSpringRef() مراجع يستخدمها useChain لتنظيم التسلسل. وينظّم useChain([ref1, ref2], [0, 0.5]) عدة نوابض باستخدام طوابع زمنية كسرية. وباستخدامهما معًا يمكن إنشاء تسلسلات معقدة متعددة المراحل، مثل تحريك التوسّع ثم الإظهار.

الأسئلة الشائعة

هل درس «‏useTrail وuseChain للتسلسلات» مجاني؟

نعم — نص درس «‏useTrail وuseChain للتسلسلات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.

ماذا ستتعلم في «‏useTrail وuseChain للتسلسلات»؟

وزّع التحريكات تدريجيًا على عناصر متعددة باستخدام useTrail، ونسّق التسلسلات باستخدام useChain تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟

لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «‏useTrail وuseChain للتسلسلات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟

نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات React Spring: ‏useSpring Hook
  2. المكوّنات المتحركة واستيفاء الأنماط
  3. ‏useTrail وuseChain للتسلسلات
  4. تحريكات موجّهة بالإيماءات باستخدام use-gesture
← العودة إلى React Academy