تخطَّ إلى المحتوى
NerdLevelTech
تطوير الواجهة الأمامية

React شرح الآثار الجانبية باستخدام useEffect (دليل ٢٠٢٥)

تعلم كيفية التعامل مع الآثار الجانبية في React باستخدام useEffect hook. يتضمن مصفوفات الاعتماد، والأمثلة، وأفضل الممارسات لعام ٢٠٢٥.

Nerd Level Techنُشر في تم التحديث دقيقتان للقراءةEnglish
صورة غلاف: React شرح الآثار الجانبية باستخدام useEffect (دليل 2025)

في React، الآثار الجانبية هي الإجراءات التي تحدث خارج عملية التصيير الطبيعية. تشمل الأمثلة جلب البيانات، تحديث الـ DOM مباشرة، العمل مع APIs، أو مزامنة مع تخزين المتصفح. React يوفر هوك useEffect لمعالجة هذه المهام.


متى ينفِّذ React useEffect؟

  • عند التثبيت (التصيير الأول).
  • عند التحديث (عند تغيير التبعيات).
  • عند إزالة التثبيت (تنظيف).

React لا ينفِّذ useEffect على الخادم في مكونات الخادم — بل يعمل فقط في المتصفح بعد التصيير.


مصفوفة التبعيات

المعامل الثاني لـ useEffect هو مصفوفة التبعيات.

  • [] → ينفَّذ مرة واحدة بعد التثبيت.
  • [value] → ينفَّذ عند تغيير value.
  • تجاهله → ينفَّذ بعد كل تصيير.

مثال: useEffect مع تبعية الحالة

jsx
import React, { useState, useEffect } from "React";

function Counter() {
  const [count, setCount] = useState(0);

  useEffect(() => {
    document.title = `Count: ${count}`;
    return () => {
      document.title = "React App";
    };
  }, [count]); // effect runs whenever "count" changes

  return (
    <button onClick={() => setCount(count + 1)}>
      Increase Count ({count})
    </button>
  );
}

أمثلة الآثار الجانبية

  • استدعاءات API (جلب البيانات)
  • WebSockets (الاستماع إلى التحديثات المباشرة)
  • Local Storage (تخزين الحالة)
  • مزامنة حالات متعددة

أفضل الممارسات (٢٠٢٥)

  1. قم دائمًا بتعريف التبعيات (استخدم ملحق ESLint React-hooks/exhaustive-deps).
  2. نظف الآثار الجانبية عند الإمكان (return () => { ... }).
  3. تجنب الحسابات الثقيلة داخل useEffect → استخدم التخزين المؤقت بدلًا من ذلك.
  4. للمنطق غير المتزامن، استخدم دالة async داخل useEffect.
jsx
useEffect(() => {
  let isActive = true;

  async function fetchData() {
    const res = await fetch("/API/data");
    if (isActive) {
      // only update if still mounted
    }
  }

  fetchData();
  return () => {
    isActive = false;
  };
}, []);

الخاتمة

useEffect هي حجر الزاوية لإدارة الآثار الجانبية في مكونات React الوظيفية. من خلال إتقان مصفوفات التبعيات ودوال التنظيف وأنماط حديثة، ستكتب تطبيقات React تكون قابلة للتنبؤ، عالية الأداء، وأسهل في الصيانة.

ابقَ على مسار النيرد

رسالتان كلّ أسبوع: شرح معمّق لموضوع واحد يوم الاثنين، وملخّص يوم الخميس للدورات والأدلّة والمقالات والبودكاست والوظائف.

بدون إزعاج. إلغاء الاشتراك في أي وقت.