当前位置:首页 > VUE

vue实现列表分类

2026-01-16 08:31:53VUE

Vue 实现列表分类的方法

使用计算属性分类

通过计算属性对原始数组进行分类处理,返回分组后的对象或数组。适用于静态数据或需要响应式更新的场景。

computed: {
  categorizedItems() {
    return this.items.reduce((acc, item) => {
      const category = item.category || '未分类'
      if (!acc[category]) acc[category] = []
      acc[category].push(item)
      return acc
    }, {})
  }
}

模板中使用 v-for 嵌套渲染:

<div v-for="(group, category) in categorizedItems" :key="category">
  <h3>{{ category }}</h3>
  <ul>
    <li v-for="item in group" :key="item.id">{{ item.name }}</li>
  </ul>
</div>

使用过滤器方法

定义分类方法在需要时调用,适合需要动态改变分类逻辑的场景。

methods: {
  filterByCategory(category) {
    return this.items.filter(item => item.category === category)
  }
}

使用第三方库

借助 lodash 的 groupBy 实现更简洁的分类:

import { groupBy } from 'lodash'

computed: {
  groupedItems() {
    return groupBy(this.items, 'category')
  }
}

动态分类选择

添加交互控件让用户选择分类方式:

<select v-model="currentCategory">
  <option value="all">全部</option>
  <option v-for="cat in uniqueCategories" :value="cat">{{ cat }}</option>
</select>

<ul>
  <li v-for="item in filteredList" :key="item.id">{{ item.name }}</li>
</ul>
computed: {
  uniqueCategories() {
    return [...new Set(this.items.map(item => item.category))]
  },
  filteredList() {
    return this.currentCategory === 'all' 
      ? this.items
      : this.items.filter(item => item.category === this.currentCategory)
  }
}

分类性能优化

对于大型列表,使用虚拟滚动或分页加载:

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

服务端分类

当数据量极大时,建议在服务端完成分类:

async fetchCategorizedData() {
  const res = await axios.get('/api/items', {
    params: { groupBy: 'category' }
  })
  this.groupedData = res.data
}

vue实现列表分类

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

相关文章

vue实现页面截屏

vue实现页面截屏

使用html2canvas库实现截屏 html2canvas是一个流行的JavaScript库,可以将DOM元素转换为Canvas图像。在Vue项目中安装html2canvas: npm insta…

vue无限菜单怎么实现

vue无限菜单怎么实现

实现 Vue 无限菜单的方法 递归组件实现嵌套菜单 使用 Vue 的递归组件特性可以轻松实现无限级嵌套菜单。通过组件调用自身的方式处理嵌套数据。 <template> <ul&…

vue设计与实现下载

vue设计与实现下载

vue设计与实现电子书下载 《Vue.js设计与实现》是一本深入解析Vue.js框架原理的书籍,由霍春阳(HcySunYang)撰写。以下是获取该资源的常见途径: 正版购买渠道 京东、…

vue实现活动倒计时

vue实现活动倒计时

实现活动倒计时的基本思路 在Vue中实现活动倒计时通常需要获取当前时间与活动结束时间的差值,并将其转换为天、小时、分钟、秒的格式展示。通过定时器每秒更新显示的时间。 定义倒计时数据 在Vue组件的d…

vue 实现

vue 实现

Vue 实现的基本步骤 安装 Vue.js 可以通过 npm 或 CDN 引入。使用 npm 安装适合大型项目,CDN 适合快速原型开发。 npm install vue 在 HTML 文件中引入…

vue实现autocomplete

vue实现autocomplete

Vue 实现 Autocomplete 功能 Vue 中实现 Autocomplete(自动完成)功能可以通过自定义组件或使用现有库完成。以下是几种常见方法: 方法一:使用 Vue 原生实现…