当前位置:首页 > VUE

vue实现列表循环

2026-03-28 09:03:33VUE

使用 v-for 指令实现列表循环

Vue 的 v-for 指令是渲染列表的核心方法,可以遍历数组或对象。基本语法如下:

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

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: 'Apple' },
        { id: 2, name: 'Banana' },
        { id: 3, name: 'Orange' }
      ]
    };
  }
};
</script>

绑定 key 的重要性

为每个循环项添加唯一的 key 属性(通常使用 id)能帮助 Vue 高效更新 DOM。避免使用索引 index 作为 key,除非列表是静态的。

vue实现列表循环

<li v-for="item in items" :key="item.id">{{ item.name }}</li>

遍历对象属性

v-for 也可遍历对象的属性,参数顺序为 (value, key, index)

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

<script>
export default {
  data() {
    return {
      userInfo: {
        name: 'John',
        age: 30,
        role: 'Developer'
      }
    };
  }
};
</script>

性能优化:避免 v-ifv-for 共用

在同一元素上同时使用 v-ifv-for 会导致性能问题。推荐通过计算属性过滤数据:

vue实现列表循环

<template>
  <ul>
    <li v-for="item in activeItems" :key="item.id">{{ item.name }}</li>
  </ul>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: 'Apple', active: true },
        { id: 2, name: 'Banana', active: false },
        { id: 3, name: 'Orange', active: true }
      ]
    };
  },
  computed: {
    activeItems() {
      return this.items.filter(item => item.active);
    }
  }
};
</script>

动态更新列表

直接通过数组方法(如 pushsplice)修改数据,Vue 会自动触发视图更新:

methods: {
  addItem() {
    this.items.push({ id: 4, name: 'Mango' });
  },
  removeItem(index) {
    this.items.splice(index, 1);
  }
}

使用 <template> 包裹多元素

需要循环渲染多个兄弟元素时,用 <template> 包裹并添加 v-for

<template v-for="item in items" :key="item.id">
  <p>{{ item.name }}</p>
  <span>{{ item.price }}</span>
</template>

标签: 列表vue
分享给朋友:

相关文章

实现vue table

实现vue table

Vue 表格实现方法 基础表格实现 使用 Vue 的 v-for 指令可以快速渲染表格数据。在模板中定义表格结构,通过数据绑定动态生成行和列。 <template> <tabl…

轮播vue实现

轮播vue实现

使用 Vue 实现轮播功能 基础轮播实现 安装依赖(如使用 Swiper): npm install swiper vue-awesome-swiper 组件代码示例: <templ…

vue最佳实现

vue最佳实现

Vue 最佳实践 组件设计 组件应遵循单一职责原则,每个组件只负责一个功能模块。命名采用 PascalCase(如 UserProfile.vue),模板中使用 kebab-case(如 <us…

vue实现单击

vue实现单击

Vue 实现单击事件的方法 在 Vue 中实现单击事件可以通过 v-on 指令或简写的 @ 符号绑定事件处理器。以下是几种常见的实现方式: 基础用法 通过 v-on:click 或 @click 绑…

vue实现type切换

vue实现type切换

Vue 实现 Type 切换的实现方法 在 Vue 中实现 Type 切换功能可以通过动态组件、条件渲染或路由切换等方式实现。以下是几种常见方法: 使用 v-if 或 v-show 条件渲染 通过绑…

vue实现忘记密码

vue实现忘记密码

Vue 实现忘记密码功能 忘记密码功能通常包括以下步骤:用户输入邮箱或手机号,系统发送验证码或重置链接,用户验证后设置新密码。以下是基于 Vue 的实现方法。 前端页面设计 创建一个忘记密码的表单页…