انتقل إلى محتوى الدرس

Lazy Initial State Functions التهيئة الكسولة للحالة الأولية

تتبّع مراحل التحفيز والتصيير والاعتماد الثلاث في React، وافهم كيف تتصرف الحالة كلقطة ثابتة في كل تصيير، وتجميع التحديثات ودوال التحديث والتهيئة الكسولة.
4 صفوف تعليمية
ReactJS
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

أخيراً، إذا كانت القيمة الأولية للحالة تتطلب حساباً مكلفاً مثل توليد مصفوفة مقاعد كبيرة أو تحليل نص مخزن، فتجنب كتابة useState(buildMatrix()) لأن الأقواس ستشغل الدالة هدراً في كل إعادة تصيير! بدلاً من ذلك مرّر دالة تهيئة كسولة (Lazy Initializer) بصيغة useState(() => buildMatrix()) لتنفذها React مرة واحدة فقط عند التركيب الأول. قارن الآليات في الجدول التالي:

صيغة الاستدعاءالمثال البرمجيالسلوك الدقيق وقت التشغيل
استبدال بقيمة اللقطةsetCount(count + 1)يعتمد على قيمة اللقطة الثابتة للتصيير الحالي
دالة التحديث المتسلسلةsetCount(c => c + 1)تقرأ أحدث قيمة في الطابور وتدعم التحديثات المتتالية
تهيئة مبكرة مهدرةuseState(heavyCalc())تُشغّل الدالة المكلفة في كل إعادة رسم دون حاجة
تهيئة كسولة عالية الكفاءةuseState(() => heavyCalc())تُشغّل دالة الحساب مرة وحيدة عند التركيب الأول
الصف 2 كود برمجي
HTML
import { useState } from 'react';

function createInitialSeats() {
  return ['A1', 'A2', 'B1', 'B2'];
}

function SeatHall() {
  const [seats] = useState(createInitialSeats);
  return <p>Loaded {seats.length} seats once.</p>;
}
الصف 3 ملاحظة هامة
الصف 4 ملاحظة هامة
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

تتبعت في هذا الدرس دورة التحفيز والتصيير والاعتماد، وفهمت ثبات لقطة الحالة داخل المعالجات والمؤقتات، واستفدت من التجميع التلقائي للتحديثات وطوابير دوال التحديث والتهيئة الكسولة عالية الكفاءة. الخطوة التالية: انتقل الآن إلى الدرس رقم 20 «تحديث الكائنات في الحالة دون تعديل مباشر» لمواصلة البناء التراكمي المتدرج في مسار React الحديث.