الأدلة · 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.
// 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 المغادرات والتخطيط.