0Pricing
Vue Academy · درس

الخصائص المحسوبة

اشتق قيمًا تفاعلية مخزّنة مؤقتًا باستخدام الخصائص المحسوبة

الخصائص المحسوبة درس مجاني في Vue Academy على CoddyKit. هذا هو الدرس 2 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Vue Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Vue Academy 3 دروس في المجموع.

ما الخاصية المحسوبة؟

تشتق الخاصية المحسوبة قيمة من بيانات تفاعلية أخرى.

  • تعيد الحساب فقط عند تغيّر تبعياتها
  • تُستخدم مثل خاصية عادية في القوالب
  • تحافظ على نظافة القوالب بنقل المنطق إلى JavaScript

تعريف computed

في Composition API، استخدموا الدالة computed.

import { ref, computed } from "vue"

const firstName = ref("Ada")
const lastName = ref("Lovelace")

const fullName = computed(() => {
  return firstName.value + " " + lastName.value
})

استخدام computed في القالب

يُوصول إلى computed مثل خاصية بيانات، من دون أقواس.

<template>
  <p>{{ fullName }}</p>
</template>

<!-- fullName updates automatically when
     firstName or lastName change -->

computed مقارنةً بالأساليب

يعيد الأسلوب قيمة أيضًا، فلماذا نستخدم computed؟

  • تستخدم Computed التخزين المؤقت وفقًا للتبعيات
  • يُنفّذ الأسلوب في كل مرة يُستدعى فيها أثناء العرض

تكون computed أكثر كفاءة للقيم المشتقة التي تُستخدم بشكل متكرر.

التخزين المؤقت عمليًا

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

const expensive = computed(() => {
  console.log("computing...")
  return heavyCalculation(data.value)
})

// Reading expensive twice in one render
// logs "computing..." only once

تُنفّذ الأساليب في كل مرة

في المقابل، يعيد الأسلوب الحساب عند كل استدعاء، حتى إذا لم تتغيّر المدخلات.

// In template: {{ getTotal() }} {{ getTotal() }}
// Calls getTotal twice, recomputing both times

methods: {
  getTotal() {
    return this.price * this.qty
  }
}

computed في Options API

تعرّف Options API الخصائص المحسوبة داخل كتلة computed.

export default {
  data() {
    return { price: 10, qty: 3 }
  },
  computed: {
    total() {
      return this.price * this.qty
    }
  }
}

دوال getter المحسوبة

تكون computed للقراءة فقط افتراضيًا، إذ تحتوي على getter فقط.

تُنفّذ getter لإنتاج القيمة كلما تغيّرت التبعيات.

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

// You can read doubled.value
// but assigning to it would warn

دوال setter المحسوبة

يمكنكم جعل computed قابلة للكتابة بتوفير دالتي get وset معًا.

const fullName = computed({
  get() {
    return first.value + " " + last.value
  },
  set(newValue) {
    const parts = newValue.split(" ")
    first.value = parts[0]
    last.value = parts[1]
  }
})

استخدام setter

عند تعيين قيمة إلى computed قابلة للكتابة، تُنفّذ setter الخاصة بها.

fullName.value = "Grace Hopper"

// The setter splits and assigns:
// first.value -> "Grace"
// last.value  -> "Hopper"

متى تستخدمون computed؟

استخدموا computed عندما تحتاجون إلى قيمة مشتقة من حالة تفاعلية.

  • تصفية قائمة أو ترتيبها
  • تنسيق البيانات لعرضها
  • دمج عدة قيم في قيمة واحدة

استخدموا المراقبات (watchers) عندما تحتاجون إلى الاستجابة بآثار جانبية بدلًا من ذلك.

اختبار سريع

اختبروا مدى فهمكم للخصائص المحسوبة.

مراجعة: الخصائص المحسوبة

تعلّمتم الحالة المشتقة:

  • تشتق computed القيم من البيانات التفاعلية
  • تستخدم التخزين المؤقت ولا تعيد الحساب إلا عند تغيّر التبعيات
  • تُنفّذ الأساليب عند كل استدعاء، بخلاف computed
  • يمكن أن تحتوي computed على getter وsetter اختياري

التالي: المراقبات والتفاعلية العميقة.

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

هل درس «الخصائص المحسوبة» مجاني؟

نعم — نص درس «الخصائص المحسوبة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Vue Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Vue Academy 3 دروس في المجموع.

ماذا ستتعلم في «الخصائص المحسوبة»؟

اشتق قيمًا تفاعلية مخزّنة مؤقتًا باستخدام الخصائص المحسوبة تتمرن على Vue Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Vue Academy؟

لا تُشترط خبرة سابقة. Vue Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 3.

كم من الوقت يستغرق درس «الخصائص المحسوبة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Vue Academy هذا؟

نعم. كل درس في Vue Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات التفاعلية
  2. الخصائص المحسوبة
  3. Watchers والتفاعلية العميقة
← العودة إلى Vue Academy