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

Scrolling and Measuring Nodes التمرير للعناصر وقياس أبعادها

اربط خطاف useRef بعناصر DOM الحقيقية في JSX لإدارة تركيز لوحة المفاتيح والتمرير السلس وقياس الأبعاد وتمرير المراجع لمكونات الإدخال الفرعية بأمان.
4 صفوف تعليمية
ReactJS
0 مشاهدة

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

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

تتيح مراجع DOM استدعاء دوال التخطيط والتمرير القياسية على أي حاوية؛ فدالة scrollIntoView({ behavior: "smooth" }) تمرر العنصر بسلاسة إلى مجال الرؤية، ودالة getBoundingClientRect() تقيس العرض والارتفاع الفعليين بالبكسل بعد تطبيق قواعد CSS.

وعند التعامل مع قائمة ديناميكية متغيرة الطول — حيث لا يجوز استدعاء useRef داخل حلقة map() — نمرر دالة مرجعية ردّية (Ref Callback) تخزن العقد النشطة في كائن Map واحد داخل مرجع الأب.

الصف 2 صورة توضيحية
مخطط يوضح خطوات ربط المرجع بعنصر DOM: تهيئة useRef بالقيمة null وتمريره لسمة ref واستدعاء دوال التركيز والتمرير في الأحداث
الصف 3 كود برمجي
HTML
const cardRef = useRef(null);
const [metrics, setMetrics] = useState('Not measured');

function handleMeasure() {
  const rect = cardRef.current.getBoundingClientRect();
  const w = Math.round(rect.width);
  const h = Math.round(rect.height);
  setMetrics(w + 'x' + h + ' px');
}
الصف 4 ملاحظة هامة