onScopeDispose() تسجيل رد نداء لتدمير النطاق
آخر تحديث: 2026-10-22
onScopeDispose() تسجيل رد نداء لتدمير النطاق
تُنفّذ onScopeDispose() التنظيف عند توقف النطاق الحالي: تُستخدم عند كتابة الدوال التركيبية لإلغاء تسجيل المستمعين العامة والمؤقتات وغيرها من الموارد.
| المجموعة | التفاعلية: المتقدم |
|---|---|
| النوع | API |
| النطاق | داخل المكوّن |
| إصدار Vue | 3.0+ |
| دعم SSR | مدعوم |
📝 الصيغة
onScopeDispose(() => {
window.removeEventListener('resize', onResize)
})
⚙️ الوسائط
| fn | دالة التنظيف (يمكن تسجيلها عدة مرات) |
|---|---|
| failSilently | عند true لا يُخطئ عند غياب نطاق نشط (3.5+) |
القيمة المُرجعة:لا شيء
▶ مثال
عدّل الشيفرة أدناه وشاهد النتيجة مباشرة:
المخرجات:
Shows the current window width, updating as you resize.
💡 نقاط مهمة
ℹ️ ملاحظة الفرق عن onUnmounted: ترتبط بالنطاق (بما في ذلك effectScope) ولا تقتصر على إلغاء تحميل المكوّن.
💡 نصيحة يُفضَّل استخدامها داخل الدوال التركيبية: حتى لو استدعى المستخدم الدالة داخل effectScope يتم التنظيف بشكل صحيح.
⚠️ تحذير يجب استدعاؤها تزامنيًا داخل نطاق نشط، والاستدعاء داخل رد نداء غير متزامن يُخطئ.
🏷️ المتقدم ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قريباً.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
س أيّهما أستخدم: onScopeDispose أم onUnmounted؟
ج استخدم onUnmounted عند الكتابة داخل المكوّنات؛ وonScopeDispose عند الكتابة داخل الدوال القابلة لإعادة الاستخدام فهي أكثر عمومية.
س هل يمكن تسجيل عدة دوال تنظيف؟
ج نعم، تُنفَّذ بالترتيب الذي سُجّلت به.
س ماذا يحدث عند غياب نطاق نشط؟
ج تُصدر تحذيرًا؛ ومن 3.5+ يمكن معالجته بصمت عبر المعامل الثاني failSilently.