当前位置:首页 > VUE

vue列表怎么实现

2026-03-08 20:15:32VUE

实现 Vue 列表的基础方法

使用 v-for 指令可以动态渲染列表。将 v-for 绑定到数组上,遍历数组中的每个元素并生成对应的 DOM 节点。

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

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

使用 :key 提高性能

v-for 中必须为每个节点绑定唯一的 key,Vue 依赖 key 进行高效的 DOM 更新。通常使用唯一标识符(如 id)而非数组索引。

<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 user" :key="key">
      {{ key }}: {{ value }}
    </li>
  </ul>
</template>

<script>
export default {
  data() {
    return {
      user: {
        name: 'John',
        age: 30,
        email: 'john@example.com'
      }
    }
  }
}
</script>

结合计算属性动态过滤列表

通过计算属性可以动态过滤或排序列表数据,避免直接修改原始数据。

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

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: 'Apple', category: 'fruit' },
        { id: 2, name: 'Carrot', category: 'vegetable' },
        { id: 3, name: 'Banana', category: 'fruit' }
      ],
      filterCategory: 'fruit'
    }
  },
  computed: {
    filteredItems() {
      return this.items.filter(item => item.category === this.filterCategory)
    }
  }
}
</script>

使用 v-for 结合 v-if 的条件渲染

Vue 3 允许 v-forv-if 同时作用在同一个元素上,但建议优先使用计算属性过滤数据以提高性能。

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

列表动态更新

Vue 会响应数据变化自动更新 DOM。直接修改数组(如 pushsplice)或替换整个数组均可触发视图更新。

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

使用 <template> 渲染多元素块

如果需要渲染多个元素但不希望包裹额外 DOM,可以使用 <template> 标签。

vue列表怎么实现

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

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

相关文章

vue实现建模

vue实现建模

Vue 实现建模的方法 在 Vue 中实现建模通常涉及数据绑定、组件化和状态管理。以下是几种常见的方法: 数据驱动建模 Vue 的核心是数据驱动视图。通过定义数据模型,Vue 会自动更新 DOM。例…

vue compile 实现

vue compile 实现

Vue 编译实现原理 Vue 的编译过程将模板字符串转换为渲染函数,主要分为解析、优化和代码生成三个阶段。 解析阶段(Parse) 将模板字符串转换为抽象语法树(AST)。Vue 使用正则表达式和有…

vue实现加载

vue实现加载

Vue 实现加载功能的方法 使用 v-if 或 v-show 控制加载状态 通过数据绑定控制加载动画的显示与隐藏。v-if 会完全移除 DOM 元素,v-show 只是切换 display 属性。…

vue实现图片循环

vue实现图片循环

实现图片循环的基本方法 在Vue中实现图片循环通常使用v-for指令结合数组数据。以下是基础实现方式: <template> <div> <img v-fo…

vue实现特效轮播

vue实现特效轮播

Vue实现特效轮播的方法 使用Vue实现轮播效果可以通过多种方式完成,以下是几种常见的实现方法。 使用Vue和CSS动画 通过Vue的动态绑定和CSS动画结合,可以实现平滑的轮播效果。 <t…

vue多进程实现

vue多进程实现

Vue 多进程实现方法 Vue.js 本身是前端框架,通常在浏览器单线程环境中运行。若需实现多进程能力,需结合后端技术或浏览器特性。以下是几种常见实现方案: Web Worker 并行计算 利用浏览…