شرح صفوف ومحتوى الفقرة
يبرز المثال العملي الأشهر للمراجع القيمية في بناء ساعة الإيقاف والمتحكمات الزمنية؛ إذ يحتاج عرض الوقت المتصاعد على الشاشة إلى useState، بينما يتطلب زر الإيقاف الاحتفاظ بالمعرّف الرقمي الذي تعيده دالة setInterval() لتمريره لاحقاً إلى clearInterval().
ولأن المستخدم قد يضغط زر الإيقاف بعد عشرات التحديثات المتتالية للعداد، فإن تخزين المعرّف في intervalRef.current يضمن بقاءه سالماً وجاهزاً للإلغاء الفوري.
HTML
const [tenths, setTenths] = useState(0);
const intervalRef = useRef(null);
function handleStart() {
clearInterval(intervalRef.current);
intervalRef.current = setInterval(() => {
setTenths((t) => t + 1);
}, 100);
}