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

Caching Expensive Work useMemo حفظ الحسابات المكلفة بـ useMemo

احفظ نواتج الحسابات المكلفة وثبّت مراجع الكائنات الديناميكية بخطاف useMemo، وثبّت مراجع الدوال الممررة للمكونات المذكرة بخطاف useCallback وتعرّف على مترجم React الحديث.
3 صفوف تعليمية
ReactJS
0 مشاهدة

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

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

تُعيد React افتراضياً تنفيذ كامل جسم دالة المكون عند كل تصيير. ورغم أن العمليات البسيطة على عشرات العناصر لا تستغرق سوى أجزاء ضئيلة من الألف من الثانية، فإن فلترة أو فرز آلاف السجلات الإحصائية عند تبديل زر عرض جانبي غير مرتبط بها يُهدر وقت المعالج بلا مبرر.

هنا يبرز خطاف useMemo(calculateValue, dependencies) الذي يخزن القيمة الناتجة من عملية حسابية نقية بين مرات التصيير، ولا يعيد حسابها إلا إذا تغير أحد عناصر مصفوفة الاعتماديات وفق فحص Object.is():

الصف 2 كود برمجي
HTML
import { useMemo, useState } from 'react';

const visible = useMemo(() => {
  return COURSES.filter((c) =>
    c.title.toLowerCase().includes(query.toLowerCase())
  );
}, [query]);
الصف 3 ملاحظة هامة