当前位置:首页 > 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 提供了 v-for 指令用于实现循环渲染列表数据。v-for 可以遍历数组、对象或数字范围,生成动态的 DOM 元素。 遍历数组 使用 v-for 遍历数组时,语法为…

代码实现vue

代码实现vue

创建Vue项目 使用Vue CLI快速初始化项目,确保已安装Node.js和npm/yarn: npm install -g @vue/cli vue create my-vue-project c…

vue页面实现

vue页面实现

Vue 页面实现方法 创建 Vue 组件 使用 Vue 单文件组件(SFC)方式创建页面,文件扩展名为 .vue。一个基本的 Vue 组件包含三个部分:模板(template)、脚本(script)和…

vue筛选实现

vue筛选实现

Vue 筛选实现方法 使用计算属性实现筛选 计算属性是 Vue 中实现数据筛选的常用方式。通过定义一个计算属性,可以根据输入的条件动态过滤数据。 <template> <div…

vue实现route

vue实现route

Vue 路由实现方法 Vue 中实现路由通常使用 vue-router 库,这是 Vue 官方推荐的路由管理器。以下是具体实现步骤: 安装 vue-router 通过 npm 或 yarn 安装…

vue实现RTMP

vue实现RTMP

Vue 中实现 RTMP 流播放 RTMP(Real-Time Messaging Protocol)是一种用于实时音视频流传输的协议。在 Vue 中实现 RTMP 播放通常需要借助第三方库或播放器。…