watchEffect() أثر جانبي بتتبع تلقائي للاعتماديات

آخر تحديث: 2026-10-22

watchEffect() أثر جانبي بتتبع تلقائي للاعتماديات

تُنفّذ watchEffect() الدالة الممرّرة فورًا وتتتبع تلقائيًا كل البيانات التفاعلية المستخدمة فيها: فتُعاد للتنفيذ بمجرد تغيّر أي اعتمادية.

المجموعةالتفاعلية: الأساس
النوعAPI
النطاقداخل المكوّن
إصدار Vue3.0+
دعم SSRمدعوم

📝 الصيغة

watchEffect(() => {
  document.title = `${count.value} نقرات`  // تتبّع count تلقائيًا
})

// عند الحاجة إلى التنظيف يُستقبل onCleanup
watchEffect((onCleanup) => { const t = setTimeout(fn, 500); onCleanup(() => clearTimeout(t)) })

⚙️ الوسائط

effectدالة الأثر الجانبي، وتستقبل onCleanup لتسجيل منطق التنظيف
optionsflush (pre|post|sync) / onTrack / onTrigger

القيمة المُرجعة:دالة stop() لإيقاف الاستماع

▶ مثال

عدّل الشيفرة أدناه وشاهد النتيجة مباشرة:

المخرجات:

The title becomes '0 clicks' on mount and updates after every click.

💡 نقاط مهمة

💡 نصيحة لا حاجة لكتابة قائمة اعتماديات يدويًا: يُتتبَّع كل ما تقرأه الدالة.
ℹ️ ملاحظة لا يمكن الحصول على القيمة القديمة: إذا احتجت مقارنة القيمتين القديمة والجديدة استخدم watch() مع التصريح بالمصدر يدويًا.
⚠️ تحذير عند إرسال طلبات داخل الأثر الجانبي ألغِ الطلبات القديمة عبر onCleanup وإلا نشأت حالات تزاحم مع التغيّرات السريعة.
المزيد من الحالات قريباً.

📚 دروس ذات صلة

❓ الأسئلة الشائعة

س كيف أختار بين watchEffect وwatch؟
ج اعتماديات بسيطة ولا حاجة للقيمة القديمة → watchEffect (شيفرة أقصر)؛ والحاجة إلى القيمة القديمة أو تحكم دقيق في الاعتماديات أو تنفيذ مؤجل → watch.
س لماذا تُعاد الدالة للتنفيذ عند تغيّر بيانات لم أستخدمها؟
ج تُتتبَّع فقط البيانات التفاعلية المقروءة فعلًا — فإذا كانت القراءة داخل فرع شرطي تتغيّر الاعتماديات حسب مسار التنفيذ.
س هل يمكن إيقاف watchEffect؟
ج نعم، يكفي استدعاء stop() المُعادة؛ كما تتوقف تلقائيًا عند إلغاء تحميل المكوّن.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%