当前位置:首页 > 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: ''
  }
}

计算属性过滤

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

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>

样式优化

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

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实现列表显示

Vue 实现列表显示的方法 在 Vue 中实现列表显示通常使用 v-for 指令,结合数组或对象数据渲染动态列表。以下是几种常见的实现方式。 基本列表渲染 通过 v-for 指令遍历数组,动态生成列…

vue实现列表权限

vue实现列表权限

实现列表权限的基本思路 在Vue中实现列表权限通常涉及根据用户角色或权限动态渲染列表内容。核心逻辑是通过权限判断控制列表项的显示、隐藏或操作权限。 权限数据管理 使用Vuex或Pinia存储全局权…

vue 实现长列表

vue 实现长列表

vue 实现长列表的优化方法 使用虚拟滚动技术,只渲染可视区域内的元素,大幅减少DOM节点数量。通过计算滚动位置动态更新显示内容,降低内存占用和渲染压力。 <template> &…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

h5 实现列表

h5 实现列表

列表实现方法 在HTML5中,可以通过多种方式实现列表,包括无序列表、有序列表和自定义列表。以下是具体的实现方法。 无序列表 无序列表使用<ul>标签,列表项使用<li>标签…

vue列表查询实现

vue列表查询实现

实现Vue列表查询功能 基本数据绑定与渲染 在Vue中实现列表查询,首先需要定义数据源和查询条件。通过v-model绑定搜索输入框,使用计算属性过滤列表。 <template> &…