当前位置:首页 > VUE

vue 模糊查询实现

2026-01-17 11:41:28VUE

实现 Vue 模糊查询的方法

使用计算属性实现模糊查询

在 Vue 中,可以通过计算属性结合 JavaScript 的 filterincludes 方法实现模糊查询。以下是一个示例代码:

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

<script>
export default {
  data() {
    return {
      searchQuery: '',
      items: [
        { id: 1, name: 'Apple' },
        { id: 2, name: 'Banana' },
        { id: 3, name: 'Orange' }
      ]
    }
  },
  computed: {
    filteredItems() {
      return this.items.filter(item => 
        item.name.toLowerCase().includes(this.searchQuery.toLowerCase())
      )
    }
  }
}
</script>

使用第三方库实现更强大的搜索

vue 模糊查询实现

对于更复杂的模糊搜索需求,可以使用 Fuse.js 等第三方库。以下是使用 Fuse.js 的示例:

import Fuse from 'fuse.js'

export default {
  data() {
    return {
      searchQuery: '',
      items: [
        { id: 1, name: 'Apple' },
        { id: 2, name: 'Banana' },
        { id: 3, name: 'Orange' }
      ],
      fuse: null
    }
  },
  created() {
    this.fuse = new Fuse(this.items, {
      keys: ['name'],
      threshold: 0.3
    })
  },
  computed: {
    filteredItems() {
      return this.searchQuery 
        ? this.fuse.search(this.searchQuery).map(result => result.item)
        : this.items
    }
  }
}

实现带有高亮显示的模糊查询

vue 模糊查询实现

可以通过自定义过滤器或方法实现搜索关键词高亮:

methods: {
  highlight(text) {
    if (!this.searchQuery) return text
    const regex = new RegExp(this.searchQuery, 'gi')
    return text.replace(regex, match => `<span class="highlight">${match}</span>`)
  }
}

在模板中使用 v-html 绑定高亮结果:

<li v-for="item in filteredItems" :key="item.id">
  <span v-html="highlight(item.name)"></span>
</li>

注意事项

  • 对于大型数据集,建议使用防抖技术优化性能
  • 模糊查询对大小写敏感时,需统一转换为大写或小写
  • 考虑添加空搜索结果的提示信息
  • 在移动端使用时,注意输入框的 UX 设计

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

相关文章

vue实现按钮组轮换

vue实现按钮组轮换

实现按钮组轮换的方法 在Vue中实现按钮组轮换效果可以通过动态绑定类和事件处理来完成。以下是一种常见的实现方式: 模板部分 <template> <div class="…

vue实现边框

vue实现边框

Vue 实现边框的方法 在 Vue 中实现边框效果可以通过多种方式完成,包括内联样式、CSS 类绑定、动态样式以及使用第三方 UI 库。以下是几种常见的实现方法。 内联样式绑定 使用 Vue 的 :…

实现 vue ssr

实现 vue ssr

Vue SSR 实现方法 Vue SSR(Server-Side Rendering)通过服务器端渲染 Vue 应用,提升首屏加载速度和 SEO 友好性。以下是核心实现方法: 基础配置 安装必要…

vue实现主页

vue实现主页

Vue 实现主页的基本步骤 创建一个 Vue 主页通常涉及以下几个关键步骤,从项目初始化到页面布局和功能实现。 初始化 Vue 项目 使用 Vue CLI 或 Vite 初始化项目。Vue CLI…

vue实现闪烁

vue实现闪烁

Vue实现元素闪烁效果 使用CSS动画实现 通过Vue绑定class结合CSS动画实现闪烁效果,代码简洁且性能较好。 <template> <div :class="{…

vue 实现直播

vue 实现直播

Vue 实现直播的基本方法 在Vue中实现直播功能,通常需要结合WebRTC、RTMP或HLS等技术。以下是几种常见的实现方式: 使用WebRTC实现实时直播 WebRTC适合低延迟的实时直播场景…