当前位置:首页 > VUE

vue循环数组实现

2026-01-11 22:58:27VUE

循环数组的实现方法

在Vue中循环数组通常使用v-for指令,以下是几种常见场景的实现方式:

vue循环数组实现

基本数组循环

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

<script>
export default {
  data() {
    return {
      items: ['苹果', '香蕉', '橙子']
    }
  }
}
</script>

对象数组循环

<template>
  <div>
    <div v-for="user in users" :key="user.id">
      <p>姓名: {{ user.name }}</p>
      <p>年龄: {{ user.age }}</p>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      users: [
        { id: 1, name: '张三', age: 25 },
        { id: 2, name: '李四', age: 30 }
      ]
    }
  }
}
</script>

带索引的对象数组循环

<template>
  <div>
    <div v-for="(user, index) in users" :key="user.id">
      <p>序号: {{ index + 1 }}</p>
      <p>姓名: {{ user.name }}</p>
    </div>
  </div>
</template>

使用计算属性过滤数组

<template>
  <div>
    <div v-for="item in filteredItems" :key="item.id">
      {{ item.name }}
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: '项目A', active: true },
        { id: 2, name: '项目B', active: false }
      ]
    }
  },
  computed: {
    filteredItems() {
      return this.items.filter(item => item.active)
    }
  }
}
</script>

嵌套循环

<template>
  <div>
    <div v-for="category in categories" :key="category.id">
      <h3>{{ category.name }}</h3>
      <ul>
        <li v-for="product in category.products" :key="product.id">
          {{ product.name }}
        </li>
      </ul>
    </div>
  </div>
</template>

使用v-for范围值

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

注意事项

  • 始终为v-for提供唯一的:key属性,通常使用id而不是index
  • 避免在同一元素上同时使用v-if和v-for,优先使用计算属性过滤数据
  • 对于大型列表,考虑使用虚拟滚动技术优化性能
  • 数组变更检测注意事项:Vue能检测到数组的变异方法(push/pop/shift等),但直接设置索引值或修改长度需要使用Vue.set或数组的splice方法

标签: 数组vue
分享给朋友:

相关文章

vue调用接口实现退出

vue调用接口实现退出

实现Vue退出功能的步骤 在Vue中调用接口实现退出功能通常需要与后端API交互,以下是实现方法: 前端实现 创建退出方法,调用后端API接口: methods: { logout() {…

vue实现密码框的包

vue实现密码框的包

Vue 密码框实现方案 在 Vue 中实现密码框功能,可以通过原生 HTML 结合 Vue 指令或使用第三方组件库完成。以下是几种常见方案: 原生 HTML + Vue 双向绑定 <templ…

vue实现图集

vue实现图集

Vue 实现图集的方法 在 Vue 中实现图集功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用第三方库(如 vue-image-lightbox) 安装 vue-image-ligh…

vue实现公式

vue实现公式

在Vue中实现公式展示或计算可以通过多种方式实现,以下为具体方法: 使用模板插值与计算属性 若公式较简单,可直接在模板中使用插值表达式或计算属性。例如计算圆的面积: <templat…

vue实现markdown

vue实现markdown

Vue 实现 Markdown 编辑器 在 Vue 中实现 Markdown 编辑器可以通过集成第三方库或自定义解析器完成。以下是两种常见方法: 使用第三方库(如 marked 或 markdown…

vue实现频道

vue实现频道

Vue实现频道功能的方法 使用Vue Router动态路由 通过Vue Router的动态路由功能可以轻松实现频道切换。在路由配置中定义动态参数,组件内通过this.$route.params获取当前…