computed() إنشاء خاصية محسوبة (computed)

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

computed() إنشاء خاصية محسوبة (computed)

تشتق computed() قيمة جديدة من بيانات تفاعلية أخرى وتخزّنها مؤقتًا: لا يُعاد الحساب إلا عند تغيّر أحد الاعتماديات.

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

📝 الصيغة

const doubled = computed(() => count.value * 2)

// خاصية محسوبة قابلة للكتابة
const full = computed({
  get: () => first.value + " " + last.value,
  set: (v) => { [first.value, last.value] = v.split(" ") }
})

⚙️ الوسائط

getterدالة getter (أو كائن يحتوي get/set) تقرأ فيها بيانات تفاعلية أخرى

القيمة المُرجعة:كائن ComputedRef للقراءة فقط (أو قابل للكتابة)

▶ مثال

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

المخرجات:

Shows 'Total: 20' by default; editing either input recalculates the total instantly.

💡 نقاط مهمة

💡 نصيحة لها تخزين مؤقت: تُحسب مرة واحدة مهما تعددت أماكن استخدامها في الصفحة، بينما تعاد methods للتنفيذ مع كل عرض.
⚠️ تحذير لا تكتب آثارًا جانبية داخل getter الخاص بـ computed (مثل إرسال طلبات أو تعديل حالات أخرى)؛ فذلك من مسؤولية watch.
ℹ️ ملاحظة لا تعمل إلا مع مصادر تفاعلية حقيقية: إذا لم تتضمن الاعتماديات بيانات تفاعلية فلن تتحدّث النتيجة أبدًا.
المزيد من الحالات قريباً.

📚 دروس ذات صلة

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

س أيّهما أستخدم: computed أم methods؟
ج عند اشتقاق قيم من بيانات تفاعلية وإعادة استخدامها في أماكن متعددة → computed (مع تخزين مؤقت)؛ وعند الحاجة إلى تمرير معاملات أو تنفيذ عند كل استدعاء (مثل معالجات الأحداث) → دالة عادية.
س هل يمكن الإسناد مباشرة إلى computed؟
ج افتراضيًا هي للقراءة فقط والإسناد إليها يُصدر تحذيرًا؛ وإذا أردت جعلها قابلة للكتابة استخدم الصيغة { get, set }.
س هل يمكن كتابة شيفرة غير متزامنة داخل computed؟
ج لا: يجب أن تُعيد computed قيمتها تزامنيًا؛ وللاشتقاقات غير المتزامنة استخدم watch مع ref.
Web-Tutorial.com

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

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

100%