当前位置:首页 > VUE

vue实现搜索产品列表

2026-01-23 06:05:58VUE

Vue 实现搜索产品列表

数据准备

在Vue组件的data中定义产品列表和搜索关键词。产品列表可以是从API获取或本地定义的数据。

data() {
  return {
    products: [
      { id: 1, name: '产品A', price: 100 },
      { id: 2, name: '产品B', price: 200 },
      { id: 3, name: '产品C', price: 300 }
    ],
    searchQuery: ''
  }
}

计算属性过滤

使用计算属性根据搜索关键词过滤产品列表。计算属性会自动更新,无需手动触发。

vue实现搜索产品列表

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

模板绑定

在模板中绑定搜索输入框和过滤后的产品列表。使用v-model实现双向绑定。

<template>
  <div>
    <input v-model="searchQuery" placeholder="搜索产品...">
    <ul>
      <li v-for="product in filteredProducts" :key="product.id">
        {{ product.name }} - {{ product.price }}
      </li>
    </ul>
  </div>
</template>

样式优化

添加基本样式提升用户体验。例如为搜索框和列表添加间距和边框。

vue实现搜索产品列表

input {
  padding: 8px;
  margin-bottom: 16px;
  width: 200px;
}
ul {
  list-style: none;
  padding: 0;
}
li {
  padding: 8px;
  border: 1px solid #eee;
  margin-bottom: 4px;
}

异步数据加载

如果产品数据需要从API异步获取,可以在created或mounted钩子中调用方法。

methods: {
  fetchProducts() {
    // 模拟API调用
    setTimeout(() => {
      this.products = [
        { id: 4, name: '产品D', price: 400 },
        { id: 5, name: '产品E', price: 500 }
      ]
    }, 1000)
  }
},
created() {
  this.fetchProducts()
}

性能优化

对于大型列表,考虑添加防抖或分页功能。使用lodash的debounce方法可以限制搜索频率。

import { debounce } from 'lodash'

methods: {
  search: debounce(function() {
    // 搜索逻辑
  }, 500)
}

标签: 列表产品
分享给朋友:

相关文章

vue实现列表循环

vue实现列表循环

列表循环的实现方式 在Vue中实现列表循环主要依赖于v-for指令,该指令基于源数据多次渲染元素或模板块。 基础数组循环 使用v-for遍历数组时,语法为item in items或(item, i…

vue实现搜索列表

vue实现搜索列表

Vue 实现搜索列表功能 在 Vue 中实现搜索列表功能通常需要以下几个关键步骤: 数据绑定与列表渲染 使用 v-model 绑定搜索输入框,监听用户输入。通过 v-for 指令渲染过滤后的列表数据…

vue实现列表权限

vue实现列表权限

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

vue实现列表页

vue实现列表页

Vue 实现列表页的方法 数据绑定与渲染 使用 v-for 指令动态渲染列表数据,结合 :key 确保渲染性能。示例代码: <template> <ul> <…

vue实现列表滚动

vue实现列表滚动

Vue 实现列表滚动的方法 使用 CSS 实现滚动 通过 CSS 的 overflow 属性可以轻松实现列表滚动。在 Vue 的模板中,为列表容器添加 overflow-y: auto 或 overf…

vue实现滚动列表

vue实现滚动列表

Vue 实现滚动列表的方法 使用 CSS 实现基础滚动 通过 CSS 的 overflow 属性可以快速实现滚动效果。适用于静态列表或简单动态内容。 <template> <d…