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

Sharing Logic Not Shared State مشاركة المنطق لا مشاركة الحالة

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

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

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

من أهم المفاهيم الهندسية التي ينبغي ترسيخها أن الخطافات المخصصة تشارك المنطق البرمجي ولا تشارك قيم الحالة نفسها. فعندما يستدعي مكونان مختلفان نفس الخطاف المخصص، لا يشتركان في متغير واحد؛ بل تخصص React لكل مكون خلايا useState() وuseEffect() مستقلة ومعزولة تماماً.

أما إذا أردت أن يقرأ مكونان شقيقان نفس قيمة الحالة المشتركة بالضبط، فارفع الحالة إلى الأب المشترك (Lifting State Up) أو مررها عبر السياق Context.

الصف 2 صورة توضيحية
مخطط شجري يوضح كيف يزود الخطاف المخصص useFetch ثلاثة مكونات مختلفة بمنطق جلب موحد مع بقاء حالة كل مكون معزولة
الصف 3 كود برمجي
HTML
function useStepCounter(initial = 0, step = 1) {
  const [count, setCount] = useState(initial);
  const increment = () => setCount((c) => c + step);
  const reset = () => setCount(initial);
  return { count, increment, reset };
}
الصف 4 ملاحظة هامة