当前位置:首页 > VUE

vue列表怎么实现

2026-03-29 07:22:58VUE

基础列表渲染

在 Vue 中,通过 v-for 指令实现列表渲染。语法为 v-for="item in items",其中 items 是数据源数组,item 是当前遍历的元素。

<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: 'Apple' },
        { id: 2, name: 'Banana' }
      ]
    };
  }
};
</script>

带索引的列表

需要索引时,语法为 v-for="(item, index) in items"index 表示当前项的索引。

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

遍历对象

v-for 也可遍历对象的属性,语法为 v-for="(value, key) in object"

vue列表怎么实现

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

<script>
export default {
  data() {
    return {
      user: { name: 'Alice', age: 25 }
    };
  }
};
</script>

动态绑定 key

为提升性能,必须为每项绑定唯一 key(通常用 id),避免复用 DOM 节点导致的渲染问题。

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

列表更新检测

Vue 能检测数组变更方法(如 push()pop()),但直接通过索引修改项或修改数组长度时,需使用 Vue.setthis.$set 触发响应式更新。

vue列表怎么实现

// 正确方式
this.$set(this.items, 0, { id: 1, name: 'New Item' });

// 错误方式(不会触发视图更新)
this.items[0] = { id: 1, name: 'New Item' };

过滤或排序列表

通过计算属性返回处理后的列表,避免直接修改原始数据。

<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', stock: 10 },
        { id: 2, name: 'Banana', stock: 0 }
      ]
    };
  },
  computed: {
    filteredItems() {
      return this.items.filter(item => item.stock > 0);
    }
  }
};
</script>

性能优化

长列表可使用虚拟滚动库(如 vue-virtual-scroller)减少 DOM 节点数量,提升渲染性能。

<template>
  <RecycleScroller
    class="scroller"
    :items="items"
    :item-size="50"
    key-field="id"
  >
    <template #default="{ item }">
      <div>{{ item.name }}</div>
    </template>
  </RecycleScroller>
</template>

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

相关文章

vue实现用户信息表

vue实现用户信息表

Vue 实现用户信息表的方法 使用 Vue CLI 创建项目 安装 Vue CLI 并初始化项目: npm install -g @vue/cli vue create user-info-tabl…

vue实现边框

vue实现边框

Vue 实现边框的方法 在 Vue 中实现边框效果可以通过多种方式完成,包括内联样式、CSS 类绑定、动态样式以及使用第三方 UI 库。以下是几种常见的实现方法。 内联样式绑定 使用 Vue 的 :…

vue实现公告

vue实现公告

Vue 实现公告功能的方法 公告功能通常需要实现滚动展示、自动切换或固定显示的效果。以下是几种常见的实现方式: 使用 marquee 标签实现滚动公告 <template> <…

vue首页实现

vue首页实现

实现Vue首页的基本步骤 创建一个Vue首页通常涉及项目初始化、页面结构设计、路由配置和组件开发。以下是具体实现方法: 初始化Vue项目 使用Vue CLI或Vite快速搭建项目结构: npm i…

vue实现兼容

vue实现兼容

Vue 兼容性实现方案 Vue.js 的兼容性主要涉及对不同浏览器、Vue 版本以及第三方库的支持。以下是常见的兼容性解决方案: 浏览器兼容性 使用 Babel 转换 ES6+ 代码为 ES5 语…

vue实现接口轮询

vue实现接口轮询

实现接口轮询的基本方法 在Vue中实现接口轮询通常通过setInterval或setTimeout结合异步请求完成。以下是一个基础实现示例: data() { return { poll…