当前位置:首页 > VUE

vue实现点击筛选

2026-03-28 18:27:43VUE

实现点击筛选功能

在Vue中实现点击筛选功能可以通过以下步骤完成:

  1. 准备数据 创建需要筛选的数据数组和筛选条件变量。
data() {
  return {
    items: [
      { id: 1, name: 'Apple', category: 'fruit' },
      { id: 2, name: 'Carrot', category: 'vegetable' },
      { id: 3, name: 'Banana', category: 'fruit' }
    ],
    selectedCategory: 'all'
  }
}
  1. 创建筛选方法 添加计算属性来处理筛选逻辑。
computed: {
  filteredItems() {
    if (this.selectedCategory === 'all') {
      return this.items
    }
    return this.items.filter(item => item.category === this.selectedCategory)
  }
}
  1. 创建筛选按钮 在模板中添加筛选按钮并绑定点击事件。
<div>
  <button @click="selectedCategory = 'all'">All</button>
  <button @click="selectedCategory = 'fruit'">Fruits</button>
  <button @click="selectedCategory = 'vegetable'">Vegetables</button>
</div>
  1. 显示筛选结果 使用v-for指令显示筛选后的结果。
<ul>
  <li v-for="item in filteredItems" :key="item.id">
    {{ item.name }} ({{ item.category }})
  </li>
</ul>

动态筛选选项实现

如果需要动态生成筛选按钮:

data() {
  return {
    // ...其他数据
    categories: ['all', 'fruit', 'vegetable']
  }
}
<div>
  <button 
    v-for="category in categories" 
    :key="category"
    @click="selectedCategory = category"
  >
    {{ category }}
  </button>
</div>

添加样式反馈

为当前选中的筛选按钮添加样式反馈:

<button 
  v-for="category in categories" 
  :key="category"
  @click="selectedCategory = category"
  :class="{ active: selectedCategory === category }"
>
  {{ category }}
</button>
.active {
  background-color: #42b983;
  color: white;
}

多条件筛选实现

如果需要实现多条件筛选:

vue实现点击筛选

data() {
  return {
    filters: {
      category: 'all',
      priceRange: 'all'
    }
  }
},
computed: {
  filteredItems() {
    return this.items.filter(item => {
      const categoryMatch = this.filters.category === 'all' || 
                          item.category === this.filters.category
      const priceMatch = this.filters.priceRange === 'all' || 
                        this.checkPriceRange(item.price)
      return categoryMatch && priceMatch
    })
  }
}

标签: vue
分享给朋友:

相关文章

vue实现适老化样式

vue实现适老化样式

Vue 实现适老化样式的关键方法 全局字体与字号调整 通过 CSS 变量或主题配置统一放大基础字号,建议正文不小于 18px,标题更大。在 App.vue 中设置全局样式: :root { --…

vue设计与实现目录

vue设计与实现目录

以下是《Vue设计与实现》一书的典型目录结构(根据常见技术书籍及Vue核心内容整理): 响应式系统 响应式数据的基本原理 依赖收集与触发更新 实现简易响应式系统 Proxy与Reflec…

django vue实现

django vue实现

Django与Vue.js整合实现方案 Django作为后端框架与Vue.js作为前端框架的整合,可以通过以下方式实现: 分离式开发 前后端完全分离,Django仅提供API接口,Vue.js通过a…

vue实现切换

vue实现切换

Vue 实现切换功能的方法 在 Vue 中实现切换功能可以通过多种方式实现,以下是一些常见的方法: 使用 v-if 和 v-else 指令 通过条件渲染实现切换功能,适用于简单的显示/隐藏场景。…

vue实现树

vue实现树

Vue 实现树形结构的方法 使用递归组件实现树形结构 递归组件是Vue中实现树形结构的常见方式。通过组件调用自身,可以轻松构建多层嵌套的树形数据。 <template> <ul…

vue实现swipe

vue实现swipe

Vue实现Swipe功能的方法 使用第三方库(推荐) Vue生态中有多个成熟的轮播/滑动组件库,例如vue-awesome-swiper或swiper/vue。以下是基于swiper/vue的实现示例…