التصيير الشرطي
v-if
السمة الموجهة v-if
تستخدم لتصيير شرطي لكتلة من الشيفرة. سيتم تصيير الكتلة فقط إذا كان تعبير السمة الموجهة يعيد قيمة صحيحة.
template
<h1 v-if="awesome">Vue رائعة!</h1>
v-else
تستطيع استخدام السمة الموجهة v-else
لتحديد "كتلة else" لـ v-if
:
template
<button @click="awesome = !awesome">تبديل</button>
<h1 v-if="awesome">Vue رائعة!</h1>
<h1 v-else>أوه لا 😢</h1>
Vue رائعة!
السمة v-else
يجب أن تتبعها السمة الموجهة v-if
أو السمة الموجهة v-else-if
- وإلا فلن يتم التعرف عليها.
v-else-if
الموجهة v-else-if
، كما يشير الاسم، تعمل ككتلة "else if" لـ v-if
. يمكن استخدامها أيضًا بشكل متسلسل عدة مرات:
template
<div v-if="type === 'A'">
أ
</div>
<div v-else-if="type === 'B'">
ب
</div>
<div v-else-if="type === 'C'">
ج
</div>
<div v-else>
غير ذلك...
</div>
Similar to v-else
, a v-else-if
element must immediately follow a v-if
or a v-else-if
element.
v-if
على <template>
Because v-if
is a directive, it has to be attached to a single element. But what if we want to toggle more than one element? In this case we can use v-if
on a <template>
element, which serves as an invisible wrapper. The final rendered result will not include the <template>
element.
template
<template v-if="ok">
<h1>العنوان</h1>
<p>الفقرة 1</p>
<p>الفقرة 2</p>
</template>
v-else
و v-else-if
يمكن استخدامها أيضًا على <template>
.
v-show
خيار آخر لعرض العنصر بشكل شرطي هو السمة v-show
. الاستخدام مثل v-if
هو نفسه إلى حد كبير:
template
<h1 v-show="ok">السلام عليكم</h1>
الفرق هو أن العنصر مع v-show
سيُصيَّر دائمًا و يبقى موجودا في DOM؛ v-show
يقوم فقط بتبديل خاصية display
في الـCSS للعنصر.
v-show
لا تدعم العنصر <template>
، ولا يعمل أيضا مع v-else
.
v-if
مقابل v-show
v-if
هو تصيير شرطي "حقيقي" لأنه يضمن أن مستمعي الأحداث والمكونات الفرعية داخل الكتلة الشرطية تُدمر وتُعاد إنشاؤها بشكل صحيح أثناء التبديلات.
v-if
هي أيضا سمة "خاملة": إذا كان الشرط غير مستوفى (false) عند التصيير الأولي، فلن تقوم بأي شيء - لن يتم تصيير الكتلة الشرطية حتى يصبح الشرط مستوفى (true) للمرة الأولى.
بالمقارنة ، v-show
تعتبر أبسط - يتم دائمًا تصيير العنصر بغض النظر عن الشرط الأولي، بالاستناد على التبديل المبني على CSS.
بشكل عام، v-if
لديها تكاليف تبديل أعلى بينما v-show
لديها تكاليف تصيير أولية أعلى. لذلك، استخدم v-show
إذا كنت بحاجة إلى التبديل على عنصر معين بشكل متكرر جدًا، و v-if
إذا كان الشرط غير مرجح أن يتغير في وقت التشغيل.
v-if
مع v-for
ملاحظة
لا يُوصى باستخدام v-if
و v-for
على نفس العنصر بسبب الأولوية الضمنية لـv-if
. اطلع على دليل الأسلوب للحصول على التفاصيل.
عندما تكون v-if
و v-for
مستخدمتان على نفس العنصر، ستُقيَّم v-if
أولا. اطلع على دليل تصيير القوائم للحصول على التفاصيل.