当前位置:首页 > VUE

vue实现列表

2026-03-27 22:48:12VUE

基础列表渲染

使用 v-for 指令实现动态列表渲染,绑定数组数据:

vue实现列表

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

<script>
export default {
  data() {
    return {
      items: [
        { name: 'Item 1' },
        { name: 'Item 2' },
        { name: 'Item 3' }
      ]
    };
  }
};
</script>
  • :key 是必须的,推荐使用唯一标识符(如 id 而非 index)。

条件渲染与列表结合

通过 v-ifv-show 控制列表项的显示:

vue实现列表

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

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: 'Item 1', isActive: true },
        { id: 2, name: 'Item 2', isActive: false }
      ]
    };
  },
  computed: {
    filteredItems() {
      return this.items.filter(item => item.isActive);
    }
  }
};
</script>

列表事件处理

绑定点击事件或自定义方法操作列表项:

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

<script>
export default {
  methods: {
    handleClick(item) {
      console.log('Clicked:', item.name);
    }
  }
};
</script>

动态列表更新

通过数组方法(如 pushsplice)或响应式 API 更新列表:

// 添加新项
this.items.push({ id: 4, name: 'Item 4' });

// 删除项
this.items.splice(index, 1);

// 使用 Vue.set 确保响应式更新(针对非响应式属性)
Vue.set(this.items, index, newItem);

性能优化

  • 对于长列表,使用 vue-virtual-scroller 实现虚拟滚动。
  • 避免在模板内使用复杂计算,优先使用 computed 属性。
<template>
  <ul>
    <li v-for="item in computedList" :key="item.id">
      {{ heavyProcessing(item) }}
    </li>
  </ul>
</template>

<script>
export default {
  computed: {
    computedList() {
      return this.items.filter(/* 复杂逻辑 */);
    }
  }
};
</script>

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

相关文章

vue实现多人视频

vue实现多人视频

实现多人视频通话的Vue方案 使用WebRTC技术结合Vue框架可以构建多人视频通话应用。以下是核心实现方法: 技术栈选择 Vue 2/3作为前端框架 WebRTC用于实时通信 Socket.io…

vue实现ai

vue实现ai

Vue 实现 AI 功能 Vue.js 可以通过集成第三方 AI 服务或本地 AI 模型来实现 AI 功能。以下是几种常见的方法: 集成第三方 AI API 使用 Vue 调用如 OpenAI、Go…

vue实现粘贴

vue实现粘贴

Vue 实现粘贴功能的方法 在 Vue 中实现粘贴功能通常涉及监听粘贴事件并处理剪贴板数据。以下是几种常见的实现方式: 监听原生粘贴事件 通过 @paste 指令或原生 addEventListen…

vue实现computed

vue实现computed

Vue 中 computed 的实现原理 computed 属性是 Vue 的一个核心特性,它基于响应式依赖进行缓存,仅在依赖发生变化时重新计算。以下是 computed 的实现方式: 基本用法 在…

vue nexttrick实现

vue nexttrick实现

Vue 中 nextTick 的实现原理 nextTick 是 Vue 提供的一个异步方法,用于在下次 DOM 更新循环结束之后执行延迟回调。它利用了 JavaScript 的事件循环机制,确保回调在…

vue实现例子

vue实现例子

以下是一些常见的 Vue 实现例子,涵盖基础功能到进阶应用场景: 基础数据绑定 使用 v-model 实现双向数据绑定: <template> <div> &l…