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

Refetching on Prop or Query إعادة الجلب عند تغير المعاملات

تعلّم كيفية جلب البيانات غير المتزامنة من واجهات REST API داخل مكونات React باستخدام useEffect والدوال غير المتزامنة وفحص حالة الاستجابة وإعادة الجلب عند تغير المعاملات.
3 صفوف تعليمية
ReactJS
0 مشاهدة

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

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

يكفي تمرير مصفوفة اعتماديات فارغة [] عندما نحتاج إلى جلب البيانات مرة واحدة عند ظهور المكون. أما إذا اعتمد عنوان الطلب على خاصية ممررة مثل category أو حالة تصفية مثل searchQuery، فيجب إدراج جميع هذه القيم التفاعلية في مصفوفة الاعتماديات [category, searchQuery].

بمجرد تغيير المستخدم للتصنيف، ترصد React اختلاف القيمة وتعيد تشغيل التأثير تلقائياً لجلب القائمة المطابقة. احرص دائماً على تمرير المعاملات المتغيرة داخل encodeURIComponent() حتى لا تؤدي المسافات أو الرموز الخاصة مثل & إلى إفساد رابط الطلب.

الصف 2 كود برمجي
HTML
useEffect(() => {
  async function loadByCategory() {
    const q = encodeURIComponent(category);
    const url = `/api/courses?category=${q}`;
    const res = await fetch(url);
    if (res.ok) setCourses(await res.json());
  }
  loadByCategory();
}, [category]);
الصف 3 ملاحظة هامة