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

分页功能实现

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

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>

无限滚动加载

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

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>

组件化设计

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

vue实现列表组件

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

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

相关文章

vue 组件实现

vue 组件实现

Vue 组件实现方法 单文件组件 (SFC) 使用 .vue 文件格式,包含模板、脚本和样式三部分: <template> <div class="example">{{…

h5实现展开列表

h5实现展开列表

使用HTML5和CSS实现展开列表 在HTML5中,可以通过结合CSS和JavaScript实现展开列表效果。以下是几种常见的方法: 方法1:使用details和summary标签 HTML5提供…

组件elementui

组件elementui

ElementUI 简介 ElementUI 是一套基于 Vue.js 的桌面端组件库,由饿了么前端团队开发并开源。它提供了丰富的 UI 组件(如按钮、表单、表格等),适合快速构建企业级中后台产品。…

vue实现列表权限

vue实现列表权限

实现列表权限控制的方法 在Vue中实现列表权限控制通常涉及前端逻辑与后端数据的配合。以下是几种常见方法: 基于角色或权限码的渲染控制 通过v-if或v-show指令根据用户权限动态渲染列表项: &…

如何缓存react组件

如何缓存react组件

缓存React组件的方法 React.memo 使用React.memo对函数组件进行浅比较缓存,避免不必要的重新渲染。适用于props不变的场景。 const MemoizedComponen…

vue实现父子组件

vue实现父子组件

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