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

Storing Timer IDs in useRef حفظ معرفات المؤقتات بالمرجع

تعلّم كيف يحفظ خطاف useRef القيم المتغيرة بين مرات التصيير دون التسبب في إعادة رسم المكون، مع بناء ساعة إيقاف دقيقة ومقارنة المرجع مع useState.
4 صفوف تعليمية
ReactJS
0 مشاهدة

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

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

يبرز المثال العملي الأشهر للمراجع القيمية في بناء ساعة الإيقاف والمتحكمات الزمنية؛ إذ يحتاج عرض الوقت المتصاعد على الشاشة إلى useState، بينما يتطلب زر الإيقاف الاحتفاظ بالمعرّف الرقمي الذي تعيده دالة setInterval() لتمريره لاحقاً إلى clearInterval().

ولأن المستخدم قد يضغط زر الإيقاف بعد عشرات التحديثات المتتالية للعداد، فإن تخزين المعرّف في intervalRef.current يضمن بقاءه سالماً وجاهزاً للإلغاء الفوري.

الصف 2 صورة توضيحية
مخطط يوضح مراحل عمل useRef: إنشاء الحاوية المبدئية وتعديل خاصية current في الأحداث وبقاء القيمة عبر التصييرات دون إعادة رسم
الصف 3 كود برمجي
HTML
const [tenths, setTenths] = useState(0);
const intervalRef = useRef(null);

function handleStart() {
  clearInterval(intervalRef.current);
  intervalRef.current = setInterval(() => {
    setTenths((t) => t + 1);
  }, 100);
}
الصف 4 ملاحظة هامة