تكرار السؤال: …
الإجابة المختصرة
هي نظام الوحدات الأصلية الجديد الذي يقوم بتحميل الوحدات بطريقة كسولة (Lazy Loading) عند أول استدعاء فقط بدلاً من تهيئتها دفعة واحدة عند إقلاع التطبيق كما كان يحدث سابقاً.
الشرح
في المعمارية السابقة، كان يتم تحميل وتهيئة كافة الـ Native Modules المسجلة في التطبيق (الكاميرا، الموقع، البلوتوث) أثناء بدء التشغيل حتى لو لم يحتج المستخدم سوى شاشة تسجيل دخول بسيطة. باستخدام TurboModules و JSI، لا يتم حجز الذاكرة أو إنشاء الوحدة الأصلية إلا في اللحظة التي يستدعي فيها كود JS تلك الوحدة فعلياً.
مثال بالكود
// استيراد TurboModule يتم بإنشاء واجهة Typed Spec:
import type { TurboModule } from 'react-native';
import { TurboModuleRegistry } from 'react-native';
export interface Spec extends TurboModule {
getDeviceModel(): string;
}
export default TurboModuleRegistry.getEnforcing<Spec>('DeviceDetails');أخطاء شائعة
- تطبيق أنماط التهيئة الثقيلة داخل دوال البناء (Constructors) لوحدات TurboModule بدلاً من تأجيلها للاستدعاء الفعلي.
أسئلة متابعة
- ما هي أداة Codegen في معمارية React Native الجديدة ولماذا تعد إلزامية؟
- ما هي الـ New Architecture في React Native وما هو دور الـ JSI (JavaScript Interface)؟