inject() حقن التبعية الموفَّرة من الأجداد

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

inject() حقن التبعية الموفَّرة من الأجداد

تستخدم inject() في أي مكوّن ابن البيانات التي وفّرها الأجداد عبر provide، ويمكن توفير قيمة افتراضية احتياطية.

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

📝 الصيغة

const theme = inject("theme")                 // undefined عند عدم التزويد
const theme = inject("theme", "light")        // قيمة افتراضية
const theme = inject("theme", () => ref("light"))  // قيمة افتراضية من مصنع (مستحسنة، تتجنّب مشاركة النسخة)

⚙️ الوسائط

keyمفتاح التبعية (يقابل provide)
defaultValueقيمة افتراضية اختيارية؛ تمرير دالة مصنع يتجنّب مشاركة المرجع

القيمة المُرجعة:القيمة المحقونة (تُعاد القيمة الافتراضية أو undefined عند عدم التزويد)

▶ مثال

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

المخرجات:

Without a provider it shows 'Theme: light by default'.

💡 نقاط مهمة

⚠️ تحذير لا تمرّر كائنات/مصفوفات حرفية كقيمة افتراضية: ستتشارك فيها المكوّنات المتعددة، فاستخدم دالة مصنع تُعيد كائنًا جديدًا.
💡 نصيحة عند حقن تبعية تفاعلية احفظ صيغة ref: يفكّها القالب تلقائيًا، وتُكتب في السكربت بصيغة .value.
ℹ️ ملاحظة لا يمكن استدعاؤها إلا داخل setup أو الدوال التركيبية (في مرحلة التنفيذ التزامني).
المزيد من الحالات قريباً.

📚 دروس ذات صلة

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

س هل يُخطئ إذا لم يوفّر الأجداد التبعية؟
ج لا، تُعيد undefined (مع تلميح في بيئة التطوير)، لذا فإن توفير قيمة افتراضية أكثر أمانًا.
س هل يؤثر تعديل التبعية بعد حقنها على الأجداد؟
ج ما يُحصل عليه هو نفس المرجع: تعديل .value لـ ref يؤثر على حالة الأجداد، وهذا عادةً سلوك غير مرغوب.
س لماذا القيمة الافتراضية على شكل مصنع؟
ج لأن كل استدعاء يولّد نسخة مستقلة، فيُتجنَّب تلويث المكوّنات المتعددة لبيانات افتراضية مشتركة.
Web-Tutorial.com

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

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

100%