当前位置:首页 > 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>

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

相关文章

uniapp组件

uniapp组件

uniapp组件基础概念 uniapp的组件系统基于Vue.js,支持跨平台开发(H5、小程序、App等)。组件分为内置基础组件(如<view>、<button>)和自定义组件…

uniapp 滑动组件

uniapp 滑动组件

uniapp 滑动组件实现方法 使用swiper组件 uniapp内置的swiper组件可以实现滑动效果,适用于轮播图或页面切换场景。 示例代码: <swiper :indicator-d…

vue实现tooltips组件

vue实现tooltips组件

实现基础 Tooltip 组件 创建一个名为 Tooltip.vue 的单文件组件,包含模板、样式和逻辑: <template> <div class="tooltip-con…

vue抽屉组件实现

vue抽屉组件实现

Vue 抽屉组件实现 使用 Element UI 实现 Element UI 提供了现成的抽屉组件 el-drawer,可以快速实现抽屉效果。 安装 Element UI: npm install…

vue组件实现vmodel

vue组件实现vmodel

Vue 组件实现 v-model 在 Vue 中,v-model 是双向数据绑定的语法糖,默认情况下绑定 value 属性并监听 input 事件。在自定义组件中实现 v-model 需要正确配置 p…

vue实现父子组件

vue实现父子组件

Vue 父子组件通信实现方式 1. 父组件向子组件传递数据(Props) 父组件通过 props 向子组件传递数据,子组件通过 props 接收数据。 父组件模板: <template>…