تأجيل قراءات الحالة
اقرأ الحالة متأخرًا لتقليص نطاق إعادة التركيب
تأجيل قراءات الحالة درس مجاني في Jetpack Compose Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Jetpack Compose Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Jetpack Compose Academy 4 دروس في المجموع.
لقراءة الحالة تكلفة
كل موضع يقرأ قيمة من حالة Compose يصبح مشتركًا فيها. وعندما تتغير تلك الحالة، يعاد تركيب كل قارئ.
نطاق إعادة التركيب
أقرب عنصر Composable محيط يقرأ حالةً ما هو نطاق إعادة تركيبها. فإذا قرأت الحالة في مستوى عالٍ، أُعيد رسم جزء كبير معًا.
اقرأ بعمق أكبر، وأعد رسمًا أقل
إذا قرأت الحالة في مستوى أعمق، فلن يعاد تركيب سوى عنصر Composable الصغير ذاك. إن تأجيل القراءة إلى مستوى أدنى يقلل حجم العمل المطلوب.
حيلة Lambda
مرّر lambda تعيد القيمة بدلًا من تمرير القيمة نفسها. عندها تحدث القراءة لاحقًا، داخل نطاق أضيق.
Box(Modifier.offset { IntOffset(0, scroll.value) })مثال Modifier.offset
تقرأ Lambda الخاصة بـ offset موضع التمرير أثناء التخطيط، لا أثناء التركيب، ولذلك يؤدي تحريكها إلى تجاوز إعادة التركيب بالكامل.
أجّل القراءة باستخدام derivedStateOf
تعيد derivedStateOf الحساب فقط عندما تتغير النتيجة فعلًا، لذلك يحدّث المصدر الذي يتغير كثيرًا قراءه بمعدل أقل بكثير.
val showButton by remember { derivedStateOf { scroll.value > 100 } }قلّل الضوضاء
من دون derivedStateOf، يعيد زر يقرأ التمرير الخام الرسم عند كل بكسل. ومعها، يعاد تركيب الزر فقط عندما تتبدل قيمة boolean.
تجنب القراءة في العنصر الأب
تؤدي قراءة الحالة في العنصر الأب لمجرد تمريرها إلى الأسفل إلى إعادة تركيب الأب وكل العناصر الشقيقة. مرّر كائن الحالة بدلًا من ذلك.
مرّر الحالة لا القيمة
مرّر إلى العنصر الابن كائن State كاملًا، ودعه يقرأه داخليًا. يبقى العنصر الأب مستقرًا بينما يتحدث العنصر الابن وحده.
تحب القوائم الكسولة تأجيل القراءة
في LazyColumn، تمنع القراءات المؤجلة تحديثات التمرير من إعادة تشغيل محتوى العناصر، فتحافظ القوائم الطويلة على سلاسة فائقة.
اقرأ متأخرًا، وشغّل أقل
العادة الأساسية بسيطة: أخّر لحظة قراءة الحالة حتى يحتاج إليها أصغر نطاق ممكن.
اختبار سريع
تحقق من فهمك لفكرة التأجيل.
مراجعة: أجّل القراءة
اقرأ الحالة في أصغر نطاق، واستخدم معدّلات Lambda وderivedStateOf، ومرّر كائنات State إلى العناصر الأدنى للحفاظ على صغر عمليات إعادة الرسم. ✅
تعلم Kotlin مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «تأجيل قراءات الحالة» مجاني؟
نعم — نص درس «تأجيل قراءات الحالة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Jetpack Compose Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Jetpack Compose Academy 4 دروس في المجموع.
ماذا ستتعلم في «تأجيل قراءات الحالة»؟
اقرأ الحالة متأخرًا لتقليص نطاق إعادة التركيب تتمرن على Jetpack Compose Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Jetpack Compose Academy؟
لا تُشترط خبرة سابقة. Jetpack Compose Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «تأجيل قراءات الحالة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Jetpack Compose Academy هذا؟
نعم. كل درس في Jetpack Compose Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المعاملات المستقرة مقابل غير المستقرة
- التخطي و@Stable و@Immutable
- تأجيل قراءات الحالة
- فاحص التخطيط وأعداد إعادة التركيب