Vue中v-for的9种使用案例

文章详细介绍了Vue.js中v-for指令的使用,包括渲染数组、对象、数字等数据类型,以及各种复杂场景如带有索引的循环、嵌套循环、渲染组件等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

v-for可以用于循环渲染数组、对象和数字等数据类型,常见的使用场景包括:
        1. 循环渲染数组

        以下代码的意思是:循环渲染一个包含三个元素的列表,每个元素的值分别为“第一项”、“第二项”和“第三项”。

<template>
  <div>
    <ul>
      <li v-for="(item, index) in list" :key="index">{{ item }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: ['第一项', '第二项', '第三项']
    }
  }
}
</script>

        2. 循环渲染对象

        以下代码的意思是:循环渲染一个包含三个属性的对象,每个属性的键值对分别为“name: 张三”、“age: 18”和“gender: 男”。

<template>
  <div>
    <ul>
      <li v-for="(value, key) in obj" :key="key">{{ key }}: {{ value }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      obj: {
        name: '张三',
        age: 18,
        gender: '男'
      }
    }
  }
}
</script>

        3. 循环渲染数字

        以下代码的意思是:循环渲染数字1到5,每个数字作为列表项的内容。

<template>
  <div>
    <ul>
      <li v-for="n in 5" :key="n">{{ n }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {}
  }
}
</script>

         4. 循环渲染带有索引的数组

        以下代码的意思是:循环渲染一个包含三个元素的列表,每个元素的值分别为“第一项”、“第二项”和“第三项”,并在每个列表项前面显示该项的索引。

<template>
  <div>
    <ul>
      <li v-for="(item, index) in list" :key="index">{{ index }}: {{ item }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: ['第一项', '第二项', '第三项']
    }
  }
}
</script>

           5. 循环渲染嵌套数组

         以下代码的意思是:循环渲染一个包含两个元素的列表,每个元素包含一个标题和一个子列表,子列表中包含两个子项。

<template>
  <div>
    <ul>
      <li v-for="(item, index) in list" :key="index">
        {{ item.title }}
        <ul>
          <li v-for="(subItem, subIndex) in item.subList" :key="subIndex">{{ subItem }}</li>
        </ul>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: [
        {
          title: '第一项',
          subList: ['子项1', '子项2']
        },
        {
          title: '第二项',
          subList: ['子项3', '子项4']
        }
      ]
    }
  }
}
</script>

        6. 循环渲染对象数组

        以下代码的意思是:循环渲染一个包含三个元素的对象数组,每个元素包含一个name和age属性。

<template>
  <div>
    <ul>
      <li v-for="(item, index) in list" :key="index">
        {{ item.name }} - {{ item.age }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: [
        { name: '张三', age: 18 },
        { name: '李四', age: 20 },
        { name: '王五', age: 22 }
      ]
    }
  }
}
</script>

        7. 循环渲染多维数组

        以下代码的意思是:循环渲染一个包含两个元素的多维数组,每个元素是一个包含两个元素的数组。

<template>
  <div>
    <ul>
      <li v-for="(item, index) in list" :key="index">
        {{ item }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: [
        ['第一项', '第二项'],
        ['第三项', '第四项']
      ]
    }
  }
}
</script>

        8. 循环渲染对象的属性数组

        以下代码的意思是:循环渲染一个对象的属性数组,每个元素是对象的一个属性值

<template>
  <div>
    <ul>
      <li v-for="(item, index) in list" :key="index">
        {{ item }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      obj: {
        name: '张三',
        age: 18,
        gender: '男'
      }
    }
  },
  computed: {
    list() {
      return Object.values(this.obj)
    }
  }
}
</script>

        9. 循环渲染组件

        以下代码的意思是:循环渲染一个包含三个元素的对象数组,

<template>
  <div>
    <my-component v-for="(item, index) in list" :key="index" :item="item"></my-component>
  </div>
</template>

<script>
import MyComponent from './MyComponent.vue'

export default {
  components: {
    MyComponent
  },
  data() {
    return {
      list: [
        { name: '张三', age: 18 },
        { name: '李四', age: 20 },
        { name: '王五', age: 22 }
      ]
    }
  }
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值