فهرست سرفصل‌های Vue
خانه (HOME) معرفی (Intro) دایرکتیوها (Directives) v-bind (v-bind) v-if (v-if) v-show (v-show) v-for (v-for) رویدادها (Events) v-on (v-on) متدها (Methods) تغییردهنده های رویداد (Event Modifiers) فرم ها (Forms) v-model (v-model) بایندینگ CSS (CSS Binding) ویژگی های محاسبه شده (Computed Properties) واچرها (Watchers) قالب ها (Templates) چرا، چگونه و راه اندازی (Why, How and Setup) اولین صفحه SFC (First SFC Page) کامپوننت ها (Components) پراپس (Props) کامپوننت های v-for (v-for Components) $emit() ($emit()) ویژگی های عبوری (Fallthrough) (Fallthrough Attributes) استایل Scoped (Scoped Styling) کامپوننت های محلی (Local Components) اسلات ها (Slots) v-slot (v-slot) اسلات های Scoped (Scoped Slots) کامپوننت های پویا (Dynamic Components) Teleport (Teleport) درخواست HTTP (HTTP Request) رفرنس های تمپلیت (Template Refs) هوک های چرخه عمر (Lifecycle Hooks) Provide/Inject (Provide/Inject) مسیریابی (Routing) ورودی های فرم (Form Inputs) انیمیشن ها (Animations) انیمیشن با v-for (Animations with v-for) بیلد (Build) Composition API (Composition API) ویژگی های توکار (Built-in Attributes) ویژگی 'is' ('is' Attribute) ویژگی 'key' ('key' Attribute) ویژگی 'ref' ('ref' Attribute) کامپوننت های توکار (Built-in Components) <KeepAlive> (<KeepAlive>) <Teleport> (<Teleport>) <Transition> (<Transition>) <TransitionGroup> (<TransitionGroup>) المان های توکار (Built-in Elements) <component> (<component>) <slot> (<slot>) <template> (<template>) نمونه کامپوننت (Component Instance) $attrs ($attrs) $data ($data) $el ($el) $parent ($parent) $props ($props) $refs ($refs) $root ($root) $slots ($slots) $emit() ($emit()) $forceUpdate() ($forceUpdate()) $nextTick() ($nextTick()) $watch() ($watch()) دایرکتیوها (Directives) v-bind (v-bind) v-cloak (v-cloak) v-for (v-for) v-html (v-html) v-if (v-if) v-else-if (v-else-if) v-else (v-else) v-memo (v-memo) v-model (v-model) v-on (v-on) v-once (v-once) v-pre (v-pre) v-show (v-show) v-slot (v-slot) v-text (v-text) گزینه های نمونه (Instance Options) داده ها (data) متدها (methods) محاسبه شده ها (computed) watch (watch) پراپس (props) emits (emits) expose (expose) هوک های چرخه عمر (Lifecycle Hooks) beforeCreate (beforeCreate) created (created) beforeMount (beforeMount) mounted (mounted) beforeUpdate (beforeUpdate) updated (updated) beforeUnmount (beforeUnmount) unmounted (unmounted) errorCaptured (errorCaptured) renderTracked (renderTracked) renderTriggered (renderTriggered) activated (activated) deactivated (deactivated) serverPrefetch (serverPrefetch) مثال ها (Examples) تمرین ها (Exercises) کوییز (Quiz) سیلابس (Syllabus) برنامه مطالعه (Study Plan) سرور (Server) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
Vue

Vue — v-else (v-else)

آخرین بروزرسانی: 1404/08/21

v-else (v-else)

اینجا با «دستور (Directive)» v-else در ویو آشنا می شویم. دستور یعنی برچسب راهنما برای قالب. با آن به ویو می گوییم چه چیزی را نشان دهد. تمرکز ما «دستور v-else ویو» است. مثل بازی، اگر شرط ها نباشند، مرحله آخر اجرا می شود.

v-else چیست و کِی اجرا می شود؟

v-else فقط وقتی اجرا می شود که همه شرط های قبلی نادرست باشند. «نادرست» یعنی نتیجه شرط false شود. باید بلافاصله بعد از v-if یا v-else-if بیاید. هیچ عبارت شرطی هم روی خودش نمی گیرد.

DOM یعنی ساختار صفحه وب. وقتی v-else عنصر را جابجا می کند، ورود و خروج آن در DOM رخ می دهد. می توانیم با <Transition> انیمیشن بدهیم. «Lifecycle hooks» مثل mounted و unmounted هم در همین تغییرات فعال می شوند.

نکته: اگر v-if درست باشد، دیگر v-else-if و v-else بررسی نمی شوند. ترتیب خیلی مهم است.

نمونه پایه با v-if / v-else-if / v-else

در این مثال، اگر کلمه «apple» نبود و «pizza» هم نبود، بخش v-else نمایش می شود. مانند آزمون مدرسه: اگر گزینه 1 درست نبود و 2 هم نبود، گزینه «سایر» می آید.

<div id="app">
  <p v-if="word === 'apple'">The word is 'apple'.</p>
  <p v-else-if="word === 'pizza'">The word is 'pizza'.</p>
  <div v-else>
    <p>The word is not 'apple', and it is not 'pizza'</p>
  </div>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
const app = Vue.createApp({
  data() {
    return {
      word: 'pear';
    };
  }
});
app.mount('#app');
<\/script>

مشاهده در ادیتور

هشدار: v-else را دقیقاً بعد از v-if یا v-else-if قرار بده. فاصله یک عنصر دیگر نگذار.

مثال فروشگاه: موجودی و پیام جایگزین

اگر تعداد زیاد بود، «In stock» می بینیم. اگر کم بود، «Very few left!». در بقیه حالت ها، v-else می گوید: «Not in stock».

<div id="app">
  <p v-if="typewriterCount > 3">In stock</p>
  <p v-else-if="typewriterCount > 0">Very few left!</p>
  <p v-else>Not in stock</p>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
const app = Vue.createApp({
  data() {
    return {
      typewriterCount: 0;
    };
  }
});
app.mount('#app');
<\/script>

مشاهده در ادیتور

مثال متن: جستجوی واژه ها

اگر متن شامل «pizza» نبود و «burrito» هم نبود، پیام v-else نمایش می شود. مثل جستجو در موبایل؛ اگر هیچ نتیجه نبود، پیام «یافت نشد» می آید.

<div id="app">
  <div v-if="text.includes('pizza')">
    <p>The text includes the word 'pizza'</p>
  </div>
  <div v-else-if="text.includes('burrito')">
    <p>The text includes the word 'burrito', but not 'pizza'</p>
  </div>
  <p v-else>The words 'pizza' or 'burrito' are not found in the text</p>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
const app = Vue.createApp({
  data() {
    return {
      text: 'I like Thai beef salad, pho soup and tagine.';
    };
  }
});
app.mount('#app');
<\/script>

مشاهده در ادیتور

گام های عملی سریع

  1. اول شرط اصلی را با v-if بنویس.
  2. بعد شرط های فرعی را با v-else-if بیفزا.
  3. در پایان، v-else را بدون شرط قرار بده.
  4. در صورت نیاز، از <Transition> برای انیمیشن استفاده کن.

برای شروع بهتر با شرط ها، صفحه v-if را ببین. همچنین درباره شاخه میانی به v-else-if سر بزن. برای دسترسی سریع، این لینک داخلی با کلیدواژه ماست: دستور v-else ویو.

جمع بندی سریع

  • v-else فقط در انتها می آید.
  • هیچ شرطی روی v-else نیست.
  • بعد از v-if یا v-else-if بیاید.
  • برای انیمیشن از <Transition> کمک بگیر.
  • هوک ها در ورود و خروج اجرا می شوند.