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

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

v-for (v-for)

دایرکتیو «v-for» برای ساخت لیست از داده ها است. «دایرکتیو (Directive)» یعنی دستور مخصوص قالب. اینجا مانند ردیف های دفتر حضور، از روی داده ها تکرار می زنیم. بنابراین هر مورد، یک آیتم می سازد.

تعریف و نحو v-for

الگو چنین است: (item, key, index) in dataSource. «آیتم (item)» یک مقدار است. «کلید (key)» نام ویژگی در شیء است. «ایندکس (index)» شماره خانه است. ترتیب نام ها همیشه «item, key, index» می ماند.

نکته: برای جلوگیری از تداخل، همیشه از v-bind:key استفاده کن تا هر عنصر یکتا باشد.

مثال 1: آرایه با ایندکس

یک آرایه از پستانداران را لیست می کنیم. سپس ایندکس هر مورد را هم نشان می دهیم.

<template>
  <ul>
    <li v-for="(x, index) in animals">On index {{ index }}: "{{ x }}"</li>
  </ul>
</template>

<script>
export default {
  data() {
    return {
      animals: ['Tiger', 'Zebra', 'Wolf', 'Crocodile', 'Seal']
    };
  }
};
<\/script>

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

مثال 2: شیء با نام ویژگی و مقدار

روی یک شیء تکرار می زنیم. نام ویژگی و مقدارش را برمی داریم.

<template>
  <ul>
    <li v-for="(x, key) in animal">(Property name: value) = ({{ key }}: {{ x }})</li>
  </ul>
</template>

<script>
export default {
  data() {
    return {
      animal: {
        name: 'Lion',
        heightCM: 110,
        weightKG: 150
      }
    };
  }
};
<\/script>

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

مثال 3: عدد به عنوان منبع

یک عدد می دهیم. سپس همان تعداد آیتم تولید می شود. ایندکس هم داریم.

<template>
  <ul>
    <li v-for="(x, index) in 10">Item: {{ x }}, index: {{ index }}</li>
  </ul>
</template>

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

مثال 4: کلید یکتا با v-bind:key

برای هر کاراکتر یک div می سازیم. سپس با key هر کدام یکتا می شود.

<template>
  <div id="wrapper">
    <div v-for="x in text" v-bind:key="x">{{ x }}</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      text: 'I love ice cream.'
    };
  }
};
<\/script>

<style>
#wrapper {
  display: flex;
  flex-wrap: wrap;
  width: 280px;
}
#wrapper > div {
  margin: 5px;
  padding: 5px 10px;
  border: solid black 1px;
  background-color: lightgreen;
}
</style>

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

گام های عملی

  1. منبع داده را مشخص کن.
  2. v-for را روی تگ مناسب بگذار.
  3. الگوی (item, key, index) را درست بچین.
  4. برای هر عنصر، یک key یکتا بده.

نکته: برای دایرکتیوهای بیشتر، صفحه دایرکتیوها را ببین. همچنین اتصال ویژگی را در v-bind تمرین کن. عبارت حلقه v-for را هم در سایت دنبال کن.

جمع بندی سریع

  • v-for از هر منبع، لیست می سازد.
  • نام ها آزادند؛ ترتیبشان ثابت است.
  • همیشه از v-bind:key استفاده کن.
  • آرایه، شیء، عدد و رشته پشتیبانی می شود.