0Pricing
Frontend Academy · درس

التوجيهات: v-if وv-for وv-bind وv-on

صيّر العناصر شرطيًا باستخدام v-if وv-show، وكرّرها باستخدام v-for، واربط السمات ديناميكيًا باستخدام v-bind، واستمع إلى أحداث DOM باستخدام v-on.

التوجيهات: v-if وv-for وv-bind وv-on درس مجاني في Frontend Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Frontend Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Frontend Academy 4 دروس في المجموع.

ما هي توجيهات Vue؟

التوجيهات هي سمات خاصة تبدأ بالبادئة v-، وتخبر Vue بتنفيذ إجراء معيّن على عنصر DOM. تُقيَّم على أنها تعبيرات JavaScript وتتفاعل مع تغيّرات البيانات التفاعلية.

v-if وv-else-if وv-else

يعرض v-if عنصراً بشكل مشروط استناداً إلى تعبير ذي قيمة صادقة. ويُزال العنصر بالكامل من DOM عندما تكون القيمة خاطئة. ويوفّر v-else الخيار البديل.

<div v-if="isLoggedIn">
  <UserDashboard />
</div>
<div v-else-if="isLoading">
  <Spinner />
</div>
<div v-else>
  <LoginForm />
</div>

v-show — تبديل الظهور

يبدّل v-show قيمة CSS ‏display: none بدلاً من إضافة العنصر إلى DOM أو إزالته منه. استخدم v-show عندما يتبدّل العنصر كثيراً، واستخدم v-if عندما نادراً ما يتغيّر الشرط.

<!-- Good for frequently toggling: -->
<div v-show="isDropdownOpen">...</div>

<!-- Good for rarely changing: -->
<div v-if="userHasPremium">...</div>

v-for — تصيير القوائم

يصيّر v-for="item in items" العنصر لكل عنصر في القائمة. أدرج دائماً :key لضمان تحديثات مستقرة.

<ul>
  <li v-for="user in users" :key="user.id">
    {{ user.name }} — {{ user.email }}
  </li>
</ul>

<!-- With index: -->
<li v-for="(item, index) in items" :key="item.id">
  {{ index + 1 }}. {{ item.title }}
</li>

v-for مع كائن

كرّر على قيم كائن، أو على أزواج المفتاح والقيمة.

<dl>
  <template v-for="(value, key) in user" :key="key">
    <dt>{{ key }}</dt>
    <dd>{{ value }}</dd>
  </template>
</dl>

v-bind — ربط السمات

يربط v-bind:attr أو الاختصار :attr سمة HTML ديناميكياً بقيمة تفاعلية.

<img :src="user.avatar" :alt="user.name">
<a :href="getLink(post.id)">{{ post.title }}</a>
<button :disabled="isLoading" :class="{ active: isActive }">Save</button>

صيغة كائن v-bind

اربط سمات متعددة دفعة واحدة باستخدام كائن.

<input v-bind="{
  type: 'email',
  placeholder: 'Enter email',
  disabled: isSubmitting
}">

ربط الأصناف: :class

اربط أصناف CSS بشكل مشروط باستخدام كائن، بحيث يكون المفتاح = اسم الصنف والقيمة = الشرط، أو باستخدام مصفوفة.

<div :class="{ 'is-active': isActive, 'has-error': hasError }">...</div>

<!-- Array syntax: -->
<div :class="[baseClass, isActive ? 'active' : '']">

<!-- Dynamic in script setup: -->
:class="{ card: true, [variantClass]: true }"

ربط الأنماط: :style

اربط الأنماط المضمّنة باستخدام كائن بصيغة camelCase.

<div :style="{ backgroundColor: brandColor, padding: spacing + 'px' }">

v-on — الاستماع إلى الأحداث

يربط v-on:event أو الاختصار @event مستمعي الأحداث.

<button @click="handleClick">Click Me</button>
<input @input="value = $event.target.value">
<form @submit.prevent="handleSubmit">...</form>

معدِّلات الأحداث

توفّر Vue معدِّلات أحداث مضمّنة: .prevent ‏(preventDefault)، و.stop ‏(stopPropagation)، و.once ‏(يُشغَّل مرة واحدة)، و.self ‏(فقط عندما يكون الهدف هو العنصر نفسه)، و.passive ‏(يحسّن أداء التمرير).

<form @submit.prevent="submit">
<button @click.stop="selectItem">
<div @click.self="closeModal">
<div @scroll.passive="onScroll">

تحقّق سريع

متى ينبغي استخدام v-show بدلاً من v-if؟

مراجعة: توجيهات Vue

يزيل v-if العناصر من DOM أو يضيفها إليه. يبدّل v-show قيمة display. يصيّر v-for القوائم، مع ضرورة استخدام :key دائماً. يربط v-bind ‏(:) السمات، و:class، و:style. يربط v-on ‏(@) مستمعي الأحداث. من معدِّلات الأحداث .prevent و.stop و.once. يُستخدم v-model للربط ثنائي الاتجاه، إذ يجمع بين v-bind:value وv-on:input.

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

هل درس «التوجيهات: v-if وv-for وv-bind وv-on» مجاني؟

نعم — نص درس «التوجيهات: v-if وv-for وv-bind وv-on» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Frontend Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Frontend Academy 4 دروس في المجموع.

ماذا ستتعلم في «التوجيهات: v-if وv-for وv-bind وv-on»؟

صيّر العناصر شرطيًا باستخدام v-if وv-show، وكرّرها باستخدام v-for، واربط السمات ديناميكيًا باستخدام v-bind، واستمع إلى أحداث DOM باستخدام v-on. تتمرن على Frontend Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «التوجيهات: v-if وv-for وv-bind وv-on»؟

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

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

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

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

  1. Vue SFC: script وtemplate وstyle
  2. واجهة Options API: data وmethods وcomputed
  3. التوجيهات: v-if وv-for وv-bind وv-on
  4. خصائص المكوّنات وEmits
← العودة إلى Frontend Academy