当前位置:首页 > VUE

vue实现列表组件

2026-01-17 04:48:40VUE

Vue 列表组件实现方法

基础列表渲染

使用 v-for 指令渲染数组数据,需配合 :key 提升性能:

<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' }
      ]
    }
  }
}
</script>

动态列表属性

通过计算属性实现过滤或排序:

computed: {
  filteredItems() {
    return this.items.filter(item => item.active)
  }
}

分页功能实现

结合分页逻辑与列表渲染:

vue实现列表组件

data() {
  return {
    currentPage: 1,
    itemsPerPage: 5
  }
},
computed: {
  paginatedItems() {
    const start = (this.currentPage - 1) * this.itemsPerPage
    return this.items.slice(start, start + this.itemsPerPage)
  }
}

拖拽排序功能

使用 vuedraggable 插件实现:

<draggable v-model="items" @end="onDragEnd">
  <div v-for="item in items" :key="item.id">
    {{ item.name }}
  </div>
</draggable>

无限滚动加载

监听滚动事件加载更多数据:

vue实现列表组件

methods: {
  handleScroll() {
    const bottom = window.innerHeight + window.scrollY >= document.body.offsetHeight
    if (bottom && !this.loading) {
      this.loadMore()
    }
  }
}

性能优化技巧

对于大型列表使用虚拟滚动:

<RecycleScroller
  :items="items"
  :item-size="50"
  key-field="id"
>
  <template v-slot="{ item }">
    {{ item.name }}
  </template>
</RecycleScroller>

组件化设计

将列表项提取为独立组件:

<template>
  <ul>
    <ListItem 
      v-for="item in items"
      :key="item.id"
      :item="item"
      @delete="handleDelete"
    />
  </ul>
</template>

标签: 组件列表
分享给朋友:

相关文章

vue列表查询实现

vue列表查询实现

实现 Vue 列表查询功能 基础列表渲染 在 Vue 中可以通过 v-for 指令实现列表渲染,结合计算属性动态过滤数据: <template> <div> &…

vue组件传值实现分页

vue组件传值实现分页

Vue组件传值实现分页的方法 在Vue中实现分页功能,通常需要父子组件之间的数据传递。以下是几种常见的传值方式: 使用props传递数据 父组件通过props向子组件传递当前页码和总页数等分页信息:…

vue实现下拉框组件

vue实现下拉框组件

Vue 下拉框组件实现 基础实现 创建基础下拉框组件,使用v-model实现双向数据绑定: <template> <div class="dropdown"> &…

vue实现列表

vue实现列表

实现列表的基本方法 在Vue中实现列表通常使用v-for指令,这是Vue的核心功能之一。v-for可以遍历数组或对象,为每个元素生成对应的DOM节点。 <template> <…

h5 实现列表

h5 实现列表

列表实现方法 在HTML5中,可以通过多种方式实现列表,包括无序列表、有序列表和自定义列表。以下是具体的实现方法。 无序列表 无序列表使用<ul>标签,列表项使用<li>标签…

vue轮播组件实现

vue轮播组件实现

vue轮播组件实现方法 使用第三方库(如Swiper) 安装Swiper库: npm install swiper 在Vue组件中引入: <template> <div…