当前位置:首页 > VUE

vue实现input模糊查询

2026-01-20 22:55:37VUE

实现 Vue 的 input 模糊查询

在 Vue 中实现 input 模糊查询,可以通过监听输入框的变化,实时过滤数据列表。以下是一个完整的实现方法:

模板部分

<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: '',
      originalList: [
        { id: 1, name: '苹果' },
        { id: 2, name: '香蕉' },
        { id: 3, name: '橙子' },
        { id: 4, name: '西瓜' }
      ]
    }
  },
  computed: {
    filteredList() {
      return this.originalList.filter(item => 
        item.name.includes(this.searchQuery)
      )
    }
  }
}
</script>

高级模糊查询实现

如果需要更强大的模糊查询功能,可以使用正则表达式或第三方库:

computed: {
  filteredList() {
    if (!this.searchQuery) return this.originalList

    const pattern = new RegExp(this.searchQuery, 'i')
    return this.originalList.filter(item => 
      pattern.test(item.name)
    )
  }
}

使用 lodash 进行防抖处理

为避免频繁触发过滤函数,可以使用 lodash 的防抖功能:

import { debounce } from 'lodash'

methods: {
  handleSearch: debounce(function() {
    this.filteredList = this.originalList.filter(item =>
      item.name.includes(this.searchQuery)
    )
  }, 300)
}

服务端模糊查询

当数据量较大时,建议将查询逻辑放到服务端:

vue实现input模糊查询

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

以上方法涵盖了从简单到复杂的模糊查询实现,可以根据实际需求选择合适的方案。

标签: 模糊vue
分享给朋友:

相关文章

vue实现答题

vue实现答题

Vue 实现答题功能 数据结构设计 使用 Vue 的响应式特性管理题目和答案数据。通常需要以下数据结构: data() { return { questions: [ {…

vue实现链接

vue实现链接

Vue 实现链接的方法 在 Vue 中实现链接可以通过多种方式,包括使用 <router-link>、<a> 标签或编程式导航。以下是几种常见的方法: 使用 <rout…

vue实现openoffice

vue实现openoffice

Vue 中集成 OpenOffice 的实现方法 在 Vue 项目中集成 OpenOffice 通常需要通过后端服务或现有库实现文档的预览和编辑功能。以下是几种常见的实现方式: 使用 OnlyOff…

vue分页实现

vue分页实现

实现Vue分页的几种方法 使用Element UI的分页组件 安装Element UI库后,可以直接使用其分页组件。以下是一个基本示例: <template> <div>…

vue实现tab

vue实现tab

Vue 实现 Tab 切换功能 在 Vue 中实现 Tab 切换功能可以通过多种方式完成,以下是几种常见的实现方法: 使用 v-if 和 v-show 指令 通过绑定 v-if 或 v-show 来…

vue实现滚动监听

vue实现滚动监听

滚动监听的基本实现 在Vue中实现滚动监听可以通过原生JavaScript的window.addEventListener或结合Vue的生命周期钩子完成。以下是一个基础示例: export defa…