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

服务端模糊查询

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

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

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

vue实现input模糊查询

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

相关文章

vue页面分离的实现

vue页面分离的实现

Vue页面分离的实现方法 将Vue页面分离为多个组件或模块,有助于提升代码可维护性和复用性。以下是几种常见的实现方式: 组件化拆分 通过将页面拆分为多个子组件,每个组件负责特定功能或UI部分。使用i…

vue slot实现

vue slot实现

vue slot 的实现方法 在 Vue 中,slot 是一种内容分发机制,允许父组件向子组件传递模板内容。以下是几种常见的 slot 实现方式: 默认 slot 默认 slot 是最基础的 sl…

vue实现gps

vue实现gps

Vue 中实现 GPS 定位功能 在 Vue 中实现 GPS 定位功能通常依赖于浏览器的 Geolocation API 或第三方地图服务(如高德、百度地图等)。以下是两种常见的实现方式: 使用浏…

实现vue cli

实现vue cli

安装 Vue CLI 确保系统中已安装 Node.js(版本建议 12.x 或更高)。通过 npm 全局安装 Vue CLI: npm install -g @vue/cli 安装完成后验证版本:…

vue实现录像

vue实现录像

Vue 实现录像功能 在 Vue 中实现录像功能通常需要借助浏览器的 MediaDevices API 和 MediaRecorder API。以下是实现步骤: 获取用户摄像头和麦克风权限 使用…

vue实现发帖

vue实现发帖

使用 Vue 实现发帖功能 前端实现 创建发帖表单组件,包含标题和内容输入框,以及提交按钮。使用 v-model 绑定表单数据。 <template> <div>…