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

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

<template> (<template>)

عنصر «تمپلیت (Template)» ظرف نامرئی است. یعنی خودش رندر نمی شود، اما محتوای داخلش با دستورهای Vue مثل v-if، v-for و v-slot مدیریت می شود. مثل پرونده شفاف که نوشته ها داخلش دیده می شود، اما خودش حساب نمی شود.

تعریف کوتاه و کاربرد

تگ HTML <template> وقتی کنار دستورهای Vue باشد، تبدیل به عنصر داخلی Vue می شود. سپس می تواند چند المنت را یکجا شرطی، تکرار یا به یک اسلات بفرستد. خود <template> عنصر DOM نمی سازد.

مثال 1: چند آیتم با v-if

<ul>
  <li>Trolltunga</li>
  <template v-if="display">
    <li>Potato Point</li>
    <li>The souks of Marrakech</li>
    <li>Dry Tortugas</li>
    <li>Halong Bay</li>
  </template>
  <li>...</li>
</ul>

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

مثال 2: بستن چند المنت و ارسال به اسلات نام دار

<template>
  <h1>App.vue</h1>
  <p>The component has two div tags with one slot in each.</p>
  <slot-comp>
    <template v-slot:bottomSlot>
      <h4>To the bottom slot!</h4>
      <p>This p and the h4 above go to the bottom slot.</p>
    </template>
    <p>This goes into the default slot</p>
  </slot-comp>
</template>

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

مثال 3: اسکریپت کامل با v-if داخل template

<div id="app">
  <template v-if="text.includes('pizza')">
    <p>The text includes the word 'pizza'</p>
    <img src="img_pizza.svg">
  </template>
  <p v-else>The word 'pizza' is not found in the text</p>
</div>
<script>
const app = Vue.createApp({
  data() {
    return {
      text: 'I like taco, pizza, Thai beef salad, pho soup and tagine.'
    };
  }
});
app.mount('#app');
<\/script>

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

گام های عملی

  1. وقتی چند المنت داری، همه را داخل <template> بگذار.
  2. سپس v-if یا v-for را روی خود <template> بنویس.
  3. اگر محتوا باید به اسلات خاص برود، از v-slot استفاده کن.

نکته: تاپ لِول <template> در فایل SFC ساختاری است. بنابراین روی آن دستور Vue نگذار.

هشدار: خود <template> رندر نمی شود. بنابراین روی آن استایلِ مستقیم اثر ندارد.

پیوندهای داخلی

برای تکمیل موضوع، صفحه اسلات در Vue و کامپوننت پویا را ببین. همچنین مرجع المان های توکار مفید است.

جمع بندی سریع

  • <template> ظرف نامرئی برای چند المنت است.
  • با v-if و v-for عالی کار می کند.
  • با v-slot محتوا را به اسلات می فرستد.
  • خودش DOM نمی سازد و استایل نمی گیرد.