الأدلة · 07

القادمون من React Native

ما الذي يبقى كما هو، وما الذي يتغيّر، وما الذي يضيفه الويب.

الاستدعاءات نفسها

تتبع المتحكمات والرسوم والإعدادات Animated في React Native. اعرض مضيفات DOM مثل Animated.div حيث يعرض React Native Animated.View. وuseAnimatedValue متاح كما في React Native.

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

فروق يجب معرفتها

هذه التفاصيل تجعل الشيفرة المنقولة تتصرف كما كانت على الجهاز.

  • يُقبل useNativeDriver وisInteraction. أما التشغيل فيُختار لكل مخرج: المخرجات المؤهلة يشغّلها المتصفح، والباقي JavaScript.
  • يقبل spring القيم stiffness/damping/mass أو bounciness/speed أو tension/friction، مع افتراضي React Native حين لا يُعطى شيء.
  • يدعم interpolate كلًا من easing وأنماط الاستقراء الثلاثة.
  • يطابق Easing ما في React Native، بما فيه elastic. وأُعيد تحجيم Easing.exp بنسبة 0.1% ليبدأ من 0 تمامًا فيستطيع استخدام التشغيل في المتصفح.
  • سرعة decay بالوحدات لكل مللي ثانية، وسرعة النابض بالوحدات لكل ثانية، كما في React Native.
  • يغلّف Animated.createAnimatedComponent مكوّنًا يمرّر ref.
Spinner.jsx
// React Native
<Animated.View style={{ transform: [{ rotate }] }} />

// React DOM with @kkwaenggwari/animated — the rest is identical
<Animated.div style={{ transform: [{ rotate }] }} />

const spin = useAnimatedValue(0);
const rotate = spin.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'] });

Animated.loop(
  Animated.timing(spin, { toValue: 1, duration: 900, easing: Easing.linear, useNativeDriver: true }),
).start();

ما يضيفه الويب

يقبل style العادي في React قيم الخطّافات مباشرة، وتصف seed/pose/respond الوجهات والإيماءات، ويتولى Animated.Keep وAnimated.Scene المغادرات والتخطيط.

بحث

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