当前位置:首页 > VUE

vue实现简单搜索

2026-03-08 19:25:39VUE

实现简单搜索功能

在Vue中实现搜索功能通常需要结合v-model绑定输入框数据,并通过计算属性或方法过滤列表。以下是一个基础实现示例:

<template>
  <div>
    <input v-model="searchQuery" placeholder="搜索..." />
    <ul>
      <li v-for="item in filteredList" :key="item.id">
        {{ item.name }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      searchQuery: '',
      items: [
        { id: 1, name: '苹果' },
        { id: 2, name: '香蕉' },
        { id: 3, name: '橙子' }
      ]
    }
  },
  computed: {
    filteredList() {
      return this.items.filter(item => 
        item.name.toLowerCase().includes(this.searchQuery.toLowerCase())
      )
    }
  }
}
</script>

优化搜索性能

对于大数据量列表,可以添加防抖处理避免频繁触发过滤计算:

import { debounce } from 'lodash'

export default {
  methods: {
    filterItems: debounce(function() {
      this.filteredItems = this.items.filter(item =>
        item.name.toLowerCase().includes(this.searchQuery.toLowerCase())
      )
    }, 300)
  },
  watch: {
    searchQuery() {
      this.filterItems()
    }
  }
}

多字段搜索

如果需要搜索多个字段,可以扩展过滤逻辑:

computed: {
  filteredList() {
    const query = this.searchQuery.toLowerCase()
    return this.items.filter(item => 
      item.name.toLowerCase().includes(query) ||
      item.description.toLowerCase().includes(query)
    )
  }
}

服务端搜索

当数据量很大时,应该考虑服务端搜索:

methods: {
  async searchItems() {
    const response = await axios.get('/api/items', {
      params: { q: this.searchQuery }
    })
    this.items = response.data
  }
},
watch: {
  searchQuery() {
    this.searchItems()
  }
}

添加搜索提示

可以使用第三方库实现自动完成功能:

<vue-autocomplete
  v-model="searchQuery"
  :items="suggestions"
  @search="fetchSuggestions"
/>

样式优化

为搜索框添加基础样式:

vue实现简单搜索

input[type="search"] {
  padding: 8px 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  width: 300px;
}

以上实现可以根据具体需求进行组合和扩展,构建出适合项目的搜索功能。

标签: 简单vue
分享给朋友:

相关文章

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue实现treeselect

vue实现treeselect

Vue TreeSelect 实现方法 使用 Vue 实现 TreeSelect 组件可以通过以下几种方式完成,包括使用现成的第三方库或自行封装组件。 使用第三方库 推荐使用成熟的第三方 TreeS…

vue实现翻页

vue实现翻页

Vue实现翻页功能 在Vue中实现翻页功能通常需要结合分页组件和数据请求逻辑。以下是常见的实现方法: 使用Element UI分页组件 安装Element UI后,可以直接使用其分页组件: <…

vue实现复制

vue实现复制

Vue 实现复制功能 在 Vue 中实现复制功能可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 Clipboard API Clipboard API 是现代浏览器提供的一种原生 AP…

vue实现图片查看

vue实现图片查看

Vue 实现图片查看功能 在 Vue 中实现图片查看功能,可以通过原生实现或使用第三方库。以下是几种常见的方法: 原生实现方式 使用 Vue 的指令和事件绑定实现基础的图片查看功能。 <te…

vue实现精准查询

vue实现精准查询

实现精准查询的方法 在Vue中实现精准查询通常需要结合输入框、数据处理和筛选逻辑。以下是几种常见的方法: 使用计算属性进行筛选 计算属性适合对数据进行实时筛选,响应输入框的变化: <tem…