当前位置:首页 > VUE

vue实现input模糊查询

2026-01-20 22:55:37VUE

实现 Vue 的 input 模糊查询

在 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>

高级模糊查询实现

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

vue实现input模糊查询

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
分享给朋友:

相关文章

vue实现图片轮播

vue实现图片轮播

使用 Swiper 实现图片轮播 安装 Swiper 依赖 npm install swiper 在 Vue 组件中引入 Swiper <template> <div…

vue按钮实现截屏

vue按钮实现截屏

Vue 按钮实现截屏的方法 在 Vue 项目中实现截屏功能可以通过多种方式完成,以下是几种常见的方法: 使用 html2canvas 库 安装 html2canvas 库: npm install…

vue穿梭框组件实现

vue穿梭框组件实现

实现基础穿梭框组件 在Vue中实现穿梭框组件,可以使用<el-transfer>(Element UI)或手动实现。以下是手动实现的核心逻辑: <template> &l…

vue实现高亮

vue实现高亮

Vue 实现文本高亮的方法 在 Vue 中实现文本高亮可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 v-html 指令 通过 v-html 指令可以动态插入 HTML 内容,将需要高…

vue 实现闪烁

vue 实现闪烁

Vue 实现闪烁效果的方法 方法一:使用 CSS 动画 在 Vue 组件中定义一个闪烁的 CSS 动画,通过绑定 class 或 style 来控制元素的闪烁效果。 <template>…

vue实现颜色

vue实现颜色

Vue 实现颜色的方法 在 Vue 中实现颜色管理可以通过多种方式,以下是一些常见的方法: 使用 CSS 变量动态绑定颜色 在 Vue 组件的样式中定义 CSS 变量,并通过 Vue 的数据绑定动态…