فهرست سرفصل‌های 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-show (v-show)

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

v-show (v-show)

اینجا «نمایش شرطی با v-show» را خیلی ساده یاد می گیری. «نمایش شرطی» یعنی عنصر گاهی دیده شود و گاهی مخفی شود. با v-show فقط دیدن را عوض می کنیم، خود عنصر حذف نمی شود.

تعریف و کاربرد v-show

v-show نمایش یک عنصر را بر اساس یک عبارت منطقی تغییر می دهد. اگر نتیجه false باشد، ویژگی CSS display برابر none می شود. عنصر فقط یک بار سوار می شود و در DOM باقی می ماند.

نمونه سریع: نمایش شرطی با v-show

با تغییر مقدار showDiv، متن دیده یا مخفی می شود.

<div v-show="showDiv">This div tag can be hidden</div>

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

مقایسه v-show و v-if

هر دو مخفی سازی می کنند؛ اما v-if عنصر را می سازد یا تخریب می کند. درحالی که v-show فقط display را عوض می کند و سریع تر تغییر می کند.

<div id="app">
  <div v-show="showDiv">Div tag with v-show</div>
  <div v-if="showDiv">Div tag with v-if</div>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"><\/script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        showDiv: true
      };
    }
  });
  app.mount('#app');
<\/script>

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

ترنزیشن با v-show

با کامپوننت <Transition> رویدادها و کلاس های حرکتی فعال می شوند. Lifecycle مثل mounted/unmounted هنگام تغییر دیدن، اجرا نمی شوند.

<template>
  <h1>JavaScript Transition Hooks</h1>
  <p>بعد از "after-enter"، یک div قرمز نمایش داده می شود.</p>
  <button @click="pVisible = true">Create p-tag!</button><br>
  <Transition @after-enter="onAfterEnter">
    <p v-show="pVisible" id="p1">Hello World!</p>
  </Transition>
  <br>
  <div v-show="divVisible">Shown after enter-active phase.</div>
</template>

<script>
export default {
  data() {
    return {
      pVisible: false,
      divVisible: false
    };
  },
  methods: {
    onAfterEnter() {
      this.divVisible = true;
    }
  }
};
<\/script>

<style scoped>
.v-enter-active {
  animation: swirlAdded 1s;
}
@keyframes swirlAdded {
  from {
    opacity: 0;
    rotate: 0;
    scale: 0.1;
  }
  to {
    opacity: 1;
    rotate: 360deg;
    scale: 1;
  }
}
#p1, div {
  display: inline-block;
  padding: 10px;
  border: dashed black 1px;
}
#p1 {
  background-color: lightgreen;
}
div {
  background-color: lightcoral;
}
</style>

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

نکات کلیدی از مستند

با v-pre کامپایل رد می شود. با v-if ساخت و تخریب انجام می شود. برای سرعت تغییر، از نمایش شرطی با v-show استفاده کن.

گام های عملی

  1. یک متغیر منطقی بساز و مقدار اولیه بده.
  2. روی عنصر، ویژگی v-show برابر آن متغیر بگذار.
  3. برای انیمیشن، عنصر را داخل <Transition> قرار بده.

جمع بندی سریع

  • v-show عنصر را حذف نمی کند.
  • فقط CSS display را عوض می کند.
  • با <Transition> انیمیشن دارد.
  • برای تغییرات پرتکرار، بهینه تر از v-if است.