main()
إدخال الرسم في البرنامج النصي للأداة. يستدعي CapDrive main() للحصول على هذه الشاشة ويكون مسؤولاً عن التخطيط والرسم والتحديث اللاحق.
عملية التنفيذ
في كل مرة يقبل فيها إدخالاً جديدًا، يقوم CapDrive بتحديث البيانات الحالية وبيئة العرض، وتنفيذ الملف بأكمله في النطاق المحلي الجديد، ثم يستدعي main() المحدد هذه المرة. تقوم الدالة بإرجاع المصفوفة View أو View المضمنة أو المحتوى الفارغ بشكل متزامن.
يتم أيضًا تحديث عمليات الجلب والحسابات ذات المستوى الأعلى في كل عملية تنفيذ. تتم إعادة تهيئة المتغيرات العادية في كل مرة، ويتم استخدام $sessionStorage لحالة الامتداد.
ستؤدي التغييرات في الإدخال الحالي أو تعريف الإدخال أو بيئة العرض إلى بدء التنفيذ، ولا يوجد تردد ثابت بشكل موحد. يتم تخطي المدخلات المتطابقة ويتم الاحتفاظ فقط بأحدث المدخلات المعلقة قيد المعالجة. لا يؤدي نمو نافذة التاريخ والتنظيف وتغييرات وقت العينة الداخلية إلى تشغيل التنفيذ بشكل فردي؛ لا تزال تغييرات إدخال الوقت المحددة بشكل واضح تؤدي إلى حدوثها. يتم تنفيذ الرسوم المتحركة بشكل مستقل من جانب الرسم.
مثال: الرسم باستخدام القراءات الحالية
حدد السرعة في إعدادات العداد. تقرأ كل مكالمة أحدث سرعة، وتولد الأرقام والوحدات؛ يعرض خطًا أفقيًا عند عدم توفر سرعة.
function main() {
const speed = $data.current.speed;
return (
<VStack spacing={8}>
<Text fontSize={64} color={$env.foreground}>
{speed?.value == null ? '—' : Math.round(speed.value)}
</Text>
<Text fontSize={16} color={$env.accent}>
{speed?.unit ?? $env.speedUnit}
</Text>
</VStack>
);
}
الحالة بين استدعاءات الدالة
يتم استخدام المتغيرات المحلية العادية فقط لاستدعاء الدالة هذا. استخدم $sessionStorage عندما تحتاج إلى الاحتفاظ بقيمة الذروة والعدد وما إلى ذلك من الحالة خلال الرحلة الحالية؛ يتم عزله عن طريق مثيل الرحلة والأداة، وسيتم مسحه عند انتهاء الرحلة أو إعادة تحميل الجهاز.
عند الحاجة إلى قائمة، يمكن إنشاء View من المصفوفة map. يوفر key ثابتًا للعناصر التي يتم تحديثها أو إعادة تدفقها بحيث تستمر تحديثات الرسم والرسوم المتحركة في التوافق مع نفس العنصر.
متطلبات التشغيل والأخطاء
يجب إكمال main() خلال مكالمة متزامنة. تجنب الحلقات المستمرة، وحظر الانتظار، وهياكل البيانات التي تنمو بلا حدود؛ سيحد وقت التشغيل من وقت التنفيذ والخطوات وحجم محتوى الرسم. يجب أن تكون القيم الموجودة في سمات الرسم أرقامًا محدودة، ويجب أن تتعامل نتائج الحساب أولاً مع الاختبارات المفقودة والقسمة على صفر وما إلى ذلك.
يتم عرض أخطاء البرنامج النصي في حالة خطأ الأداة والسجلات المقابلة. يتم استخدام المعاينة للتحقق من رمز العرض؛ تعتمد قراءات العدادات الفعلية على البيانات المحددة ومصدر البيانات الحالي.