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

Building a Clean useFetch Hook بناء خطاف الجلب الموحد useFetch

استخلص المنطق التفاعلي المتكرر في خطافات React مخصصة تلتزم ببادئة use الإلزامية وتضمن عزل حالة كل مكون عبر بناء خطافات useFetch وuseLocalStorage وuseDebounce.
3 صفوف تعليمية
ReactJS
0 مشاهدة

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

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

لنجمع الآن خلاصة ما أتقنته في الدروس السابقة لبناء خطاف الجلب القياسي useFetch(url). داخل هذا الخطاف سندير متغيرات data وstatus وerror، وننشئ كائن new AbortController() داخل useEffect()، ونتحقق من response.ok مع استثناء AbortError.

لاحظ مدى نقاء وبساطة المكون المستدعي بعد هذا الاستخلاص؛ فمجرد تبديل الرابط بين الدورات والمنتجات يتكفل الخطاف تلقائياً بإلغاء الطلب القديم وتحديث الواجهة.

الصف 2 كود برمجي
HTML
function useFetch(url) {
  const [data, setData] = useState([]);
  const [status, setStatus] = useState('loading');
  useEffect(() => {
    const ctrl = new AbortController();
    // fetch with ctrl.signal + response.ok guard
    return () => ctrl.abort();
  }, [url]);
  return { data, status };
}
الصف 3 ملاحظة هامة