当前位置:首页 > VUE

vue公共列表的实现

2026-02-09 17:25:06VUE

Vue公共列表的实现方法

公共列表在Vue中通常指可复用的列表组件,用于展示数据集合。以下是几种常见的实现方式:

基础列表组件实现

创建可复用的列表组件,通过props接收数据:

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

<script>
export default {
  props: {
    items: {
      type: Array,
      required: true
    }
  }
}
</script>

使用插槽增强灵活性

通过插槽允许父组件自定义列表项渲染:

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

结合Vuex管理状态

当列表数据需要全局共享时,可以使用Vuex:

// store.js
export default new Vuex.Store({
  state: {
    listItems: []
  },
  mutations: {
    updateList(state, payload) {
      state.listItems = payload
    }
  }
})

动态加载数据

结合API请求实现动态数据加载:

export default {
  data() {
    return {
      items: [],
      loading: false
    }
  },
  methods: {
    async fetchItems() {
      this.loading = true
      try {
        const response = await axios.get('/api/items')
        this.items = response.data
      } finally {
        this.loading = false
      }
    }
  },
  created() {
    this.fetchItems()
  }
}

分页功能实现

添加分页支持:

export default {
  data() {
    return {
      items: [],
      currentPage: 1,
      totalPages: 0,
      perPage: 10
    }
  },
  methods: {
    async fetchItems() {
      const response = await axios.get('/api/items', {
        params: {
          page: this.currentPage,
          per_page: this.perPage
        }
      })
      this.items = response.data.items
      this.totalPages = response.data.total_pages
    },
    changePage(page) {
      this.currentPage = page
      this.fetchItems()
    }
  }
}

虚拟滚动优化性能

对于大型列表,使用虚拟滚动提高性能:

vue公共列表的实现

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

<script>
import { RecycleScroller } from 'vue-virtual-scroller'
import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'

export default {
  components: {
    RecycleScroller
  },
  props: {
    items: Array
  }
}
</script>

这些方法可以根据具体需求组合使用,构建灵活高效的公共列表组件。

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

相关文章

vue实现按钮刷新

vue实现按钮刷新

Vue 实现按钮刷新功能 在 Vue 中实现按钮刷新功能可以通过多种方式实现,具体取决于刷新需求是局部刷新还是全局刷新。以下是几种常见的方法: 使用 window.location.reload()…

vue实现签约合作弹窗

vue实现签约合作弹窗

实现签约合作弹窗的步骤 使用Vue实现签约合作弹窗可以通过组件化方式完成,结合模态框和表单交互逻辑。以下是具体实现方法: 1. 创建弹窗组件 新建一个Vue组件文件(如SignContractDia…

vue 实现递归

vue 实现递归

Vue 实现递归组件的方法 在 Vue 中实现递归组件通常用于处理树形结构数据,例如菜单、评论列表或文件目录。以下是实现递归组件的关键步骤: 定义递归组件 递归组件需要设置 name 属性,以便在模…

vue筛选实现

vue筛选实现

Vue 筛选实现方法 使用计算属性实现筛选 计算属性是 Vue 中实现数据筛选的常用方式。通过定义一个计算属性,可以根据输入的条件动态过滤数据。 <template> <div…

vue实现返回

vue实现返回

返回按钮功能实现 在Vue中实现返回功能通常有两种方式:使用浏览器历史记录的history.back()或结合Vue Router进行编程式导航。以下是具体实现方法: 使用浏览器API metho…

vue 实现modal

vue 实现modal

Vue 实现 Modal 的方法 使用 Vue 原生组件 通过 Vue 的组件系统可以轻松实现 Modal。创建一个可复用的 Modal 组件,通过 props 控制显示与隐藏。 <templ…