当前位置:首页 > VUE

使用vue实现模糊查询

2026-02-21 11:57:19VUE

使用 Vue 实现模糊查询

数据准备

确保有一个数据数组和一个用于存储搜索结果的数组。数据可以来自本地或 API 调用。

data() {
  return {
    items: ['Apple', 'Banana', 'Orange', 'Grapes', 'Mango'],
    searchQuery: '',
    filteredItems: []
  }
}

监听搜索输入

使用 v-model 绑定输入框的值到 searchQuery,并通过 watch 或计算属性监听变化。

使用vue实现模糊查询

watch: {
  searchQuery(newVal) {
    this.filterItems(newVal)
  }
}

实现模糊查询逻辑

使用 JavaScript 的字符串方法或正则表达式进行模糊匹配。以下是一个简单的不区分大小写的匹配示例:

methods: {
  filterItems(query) {
    if (!query) {
      this.filteredItems = this.items
      return
    }
    this.filteredItems = this.items.filter(item =>
      item.toLowerCase().includes(query.toLowerCase())
    )
  }
}

渲染搜索结果

在模板中显示搜索结果,使用 v-for 遍历 filteredItems

使用vue实现模糊查询

<template>
  <div>
    <input v-model="searchQuery" placeholder="Search..." />
    <ul>
      <li v-for="item in filteredItems" :key="item">{{ item }}</li>
    </ul>
  </div>
</template>

优化性能

对于大数据量,可以使用防抖(debounce)减少频繁触发搜索。

import { debounce } from 'lodash'

methods: {
  filterItems: debounce(function(query) {
    if (!query) {
      this.filteredItems = this.items
      return
    }
    this.filteredItems = this.items.filter(item =>
      item.toLowerCase().includes(query.toLowerCase())
    )
  }, 300)
}

使用第三方库增强功能

如果需要更复杂的模糊匹配(如权重、拼音搜索),可以使用 Fuse.js 等库。

import Fuse from 'fuse.js'

methods: {
  setupFuse() {
    const options = {
      keys: ['name'],
      threshold: 0.4
    }
    this.fuse = new Fuse(this.items, options)
  },
  filterItems(query) {
    if (!query) {
      this.filteredItems = this.items
      return
    }
    this.filteredItems = this.fuse.search(query).map(result => result.item)
  }
}

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

相关文章

vue实现压缩上传文件

vue实现压缩上传文件

压缩上传文件的实现方法 在Vue中实现文件压缩和上传功能,可以通过以下步骤完成。该方法结合了前端文件压缩库和HTTP请求,确保文件在上传前被有效压缩。 安装必要的依赖 需要使用compressorj…

vue穿梭框组件实现

vue穿梭框组件实现

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

vue实现盖章

vue实现盖章

Vue 实现盖章功能 在Vue中实现盖章功能通常涉及前端UI交互,通过Canvas或SVG绘制印章,并允许用户拖拽或点击放置印章。以下是具体实现方法: 使用Canvas绘制印章 通过HTML5的…

vue实现批量

vue实现批量

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

vue compile 实现

vue compile 实现

Vue 编译实现原理 Vue 的编译过程将模板字符串转换为渲染函数,主要分为解析、优化和代码生成三个阶段。 解析阶段(Parse) 将模板字符串转换为抽象语法树(AST)。Vue 使用正则表达式和有…

vue实现selectable

vue实现selectable

Vue 实现可选择的 Select 组件 在 Vue 中实现一个可选择的 Select 组件,可以通过以下几种方式: 使用原生 HTML select 元素 <template>…