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

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

v-cloak (v-cloak)

دایرکتیو «v-cloak» محتوای خام را موقتاً پنهان می کند. «کامپایل (Compile)» یعنی تبدیل قالب به DOM نهایی. پس تا کامپایل تمام شود، کاربر براکت ها را نمی بیند. مثل پرده صحنه تئاتر که قبل از شروع، همه چیز را می پوشاند.

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

v-cloak روی المنت می نشیند و با CSS پنهانش می کنیم. سپس وقتی Vue سوار شد، پنهان بودن برداشته می شود. این روش بیشتر برای کدهای کامپایل شونده در مرورگر است، نه فایل های SFC.

مثال پایه: پنهان سازی محتوای خام

اینجا متن تا زمان سوارشدن Vue دیده نمی شود. مثل مخفی کردن جواب تا معلم برسد.

<template>
  <div id="app" v-cloak>
    {{ message }}
  </div>
</template>

<style>
[v-cloak] {
  display: none;
}
</style>

<script>
export default {
  data() {
    return {
      message: 'Hello World!'
    };
  }
};
<\/script>

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

مثال 1: برجسته کردن فاز قبل از کامپایل

برای دیدن فاز پیش ازکامپایل، متن را موقتاً قرمز می کنیم. بنابراین تغییر حالت واضح تر می شود.

<template>
  <main>
    <h3>Vue v-cloak Example</h3>
    <p>Refresh to observe pre-compilation.</p>
    <div id="app" v-cloak>
      {{ message }}
    </div>
  </main>
</template>

<style>
[v-cloak] {
  color: red;
}
#app {
  padding: 10px;
  font-size: x-large;
  background-color: lightgreen;
}
</style>

<script>
export default {
  data() {
    return {
      message: 'Hello World!'
    };
  }
};
<\/script>

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

مثال 2: تأخیر عمدی با setTimeout()

با setTimeout() مونت را دیرتر انجام می دهیم. پس اثر v-cloak واضح تر دیده می شود.

<template>
  <section>
    <h3>Delayed Mount</h3>
    <div id="app" v-cloak>
      {{ message }}
    </div>
  </section>
</template>

<style>
[v-cloak] {
  opacity: 0.5;
}
#app {
  padding: 10px;
  font-size: x-large;
  background-color: lightgreen;
}
</style>

<script>
export default {
  data() {
    return {
      message: 'Hello World!'
    };
  },
  mounted() {
    setTimeout(() => {
      this.message = 'Mounted!';
    }, 1000);
  }
};
<\/script>

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

گام های عملی

  1. روی المنت، ویژگی v-cloak بگذار.
  2. در CSS، سلکتور [v-cloak] را پنهان کن.
  3. اپ Vue را بساز و سوار کن.
  4. پس از مونت، نمایش عادی می شود.

نکته: برای دیگر دستورات، صفحه دایرکتیوها را ببین. همچنین اتصال ویژگی را در v-bind تمرین کن. برای سئو داخلی، از عبارت دایرکتیو v-cloak نیز استفاده کن.

جمع بندی سریع

  • v-cloak فلیکر محتوا را می گیرد.
  • با CSS، حالت پنهان را تعیین کن.
  • برای SFC معمولاً لازم نیست.
  • با تأخیر، اثر را بهتر ببین.