watchSyncEffect() أثر جانبي يُنفّذ تزامنيًا

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

watchSyncEffect() أثر جانبي يُنفّذ تزامنيًا

تكافئ watchSyncEffect()‏ watchEffect مع flush: 'sync': تُنفّذ تزامنيًا فور تغيّر الاعتمادية دون تجميع (batching).

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

📝 الصيغة

watchSyncEffect(() => {
  console.log('تنفيذ فوري', count.value)
})

⚙️ الوسائط

effectدالة الأثر الجانبي؛ الخيارات مطابقة لـ watchEffect (دون flush)

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

▶ مثال

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

المخرجات:

A +2 click logs twice (e.g. '2 2'); with default flush you would see the final value once.

💡 نقاط مهمة

⚠️ تحذير التنفيذ التزامني يتجاوز التجميع، وهذا خطر أداء واضح في سيناريوهات التغيّر المتكرر — فلا تستخدمه إلا عند الضرورة القصوى لالتقاط كل تغيّر بدقة.
ℹ️ ملاحظة استخدامات نموذجية: تتبّع الأخطاء، والسيناريوهات التي تتطلب تسجيل كل تغيّر بترتيب صارم.
💡 نصيحة إذا كان watch (بالوضع الافتراضي pre) مع nextTick كافيين فلا تلجأ إلى sync.
المزيد من الحالات قريباً.

📚 دروس ذات صلة

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

س ما الفرق بين وضع sync والوضع الافتراضي؟
ج الافتراضي يدمج التعديلات المتعددة في الجولة الواحدة بتنفيذ واحد؛ أما sync فيُنفّذ مرة عند كل تعديل.
س هل يزيد احتمال حدوث مشاكل أداء؟
ج نعم، إذ يُنفّذ الأثر الجانبي تزامنيًا عند كل إسناد، والتعديل داخل الحلقات يضاعف التكلفة خطيًا.
س هل يوفّر القيمتين القديمة والجديدة؟
ج لا، فهي من عائلة watchEffect؛ وللحصول على القيمتين استخدم watch مع flush: 'sync'.
Web-Tutorial.com

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

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

100%