当前位置:首页 > VUE

vue实现搜索商品

2026-03-28 20:29:35VUE

实现商品搜索功能(Vue)

数据准备

创建商品数据数组,包含名称、价格等字段

data() {
  return {
    products: [
      { id: 1, name: '苹果', price: 5.99 },
      { id: 2, name: '香蕉', price: 3.49 },
      { id: 3, name: '橙子', price: 4.99 }
    ],
    searchQuery: ''
  }
}

搜索输入框

在模板中添加搜索输入框,绑定searchQuery

<template>
  <div>
    <input 
      v-model="searchQuery" 
      placeholder="搜索商品..."
    >
  </div>
</template>

计算属性过滤

使用计算属性实现搜索逻辑

vue实现搜索商品

computed: {
  filteredProducts() {
    const query = this.searchQuery.toLowerCase()
    return this.products.filter(product => 
      product.name.toLowerCase().includes(query)
    )
  }
}

显示搜索结果

在模板中展示过滤后的商品列表

<ul>
  <li v-for="product in filteredProducts" :key="product.id">
    {{ product.name }} - ¥{{ product.price }}
  </li>
</ul>

优化搜索性能

添加防抖函数减少频繁搜索

vue实现搜索商品

methods: {
  debounceSearch: _.debounce(function() {
    this.filteredProducts = this.products.filter(product => 
      product.name.toLowerCase().includes(this.searchQuery.toLowerCase())
    )
  }, 300)
}

多字段搜索

扩展搜索功能支持价格范围

computed: {
  filteredProducts() {
    const query = this.searchQuery.toLowerCase()
    return this.products.filter(product => 
      product.name.toLowerCase().includes(query) || 
      product.price.toString().includes(query)
    )
  }
}

空状态提示

添加无结果时的提示信息

<p v-if="filteredProducts.length === 0 && searchQuery">
  没有找到匹配的商品
</p>

标签: 商品vue
分享给朋友:

相关文章

vue实现管道

vue实现管道

Vue 中实现管道(Pipe)功能 在 Vue 中可以通过过滤器(Filters)或计算属性(Computed Properties)实现类似管道的功能,将数据经过多个处理步骤后输出。 使用过滤器(…

vue实现频道

vue实现频道

Vue实现频道功能的方法 使用Vue Router动态路由 通过Vue Router的动态路由功能可以轻松实现频道切换。在路由配置中定义动态参数,组件内通过this.$route.params获取当前…

vue实现答辩

vue实现答辩

Vue 实现答辩系统的关键步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目,安装 Vue Router 管理路由,Pinia/Vuex 进行状态管理。配置 ESLint 和 Pre…

vue实现输入地址

vue实现输入地址

Vue 实现输入地址功能 在 Vue 中实现输入地址功能,可以通过结合表单输入、地图 API(如高德、百度或 Google Maps)以及地址自动补全等方式完成。以下是几种常见方法: 使用高德地图…

vue实现饼图

vue实现饼图

使用 ECharts 实现 Vue 饼图 安装 ECharts 依赖 npm install echarts --save 在 Vue 组件中引入 ECharts import * as echa…

vue实现匹配显示

vue实现匹配显示

Vue实现匹配显示的方法 使用v-if或v-show指令 通过条件渲染指令v-if或v-show,可以根据条件匹配显示不同的内容。v-if会完全销毁或重建DOM元素,而v-show仅切换CSS的dis…