…">
当前位置:首页 > VUE

vue实现搜素demo

2026-01-20 01:30:02VUE

以下是一个基于Vue实现的搜索功能Demo的完整方案,包含关键代码和实现逻辑:

vue实现搜素demo

基础组件结构

<template>
  <div class="search-demo">
    <input 
      v-model="searchQuery" 
      @input="handleSearch" 
      placeholder="输入搜索内容"
    />
    <ul v-if="results.length">
      <li v-for="item in results" :key="item.id">
        {{ item.name }}
      </li>
    </ul>
    <p v-else-if="searchQuery && !results.length">无匹配结果</p>
  </div>
</template>

数据与逻辑实现

<script>
export default {
  data() {
    return {
      searchQuery: '',
      results: [],
      allItems: [
        { id: 1, name: 'Vue基础教程' },
        { id: 2, name: 'React进阶指南' },
        { id: 3, name: 'JavaScript设计模式' }
      ]
    }
  },
  methods: {
    handleSearch() {
      if (!this.searchQuery.trim()) {
        this.results = []
        return
      }

      const query = this.searchQuery.toLowerCase()
      this.results = this.allItems.filter(item => 
        item.name.toLowerCase().includes(query)
      )
    }
  }
}
</script>

样式优化

<style scoped>
.search-demo {
  max-width: 400px;
  margin: 0 auto;
}

input {
  width: 100%;
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 4px;
}

ul {
  list-style: none;
  padding: 0;
  margin-top: 10px;
}

li {
  padding: 8px;
  border-bottom: 1px solid #eee;
}
</style>

高级功能扩展

添加防抖优化搜索性能:

import _ from 'lodash'

export default {
  methods: {
    handleSearch: _.debounce(function() {
      // 原有搜索逻辑
    }, 300)
  }
}

实现异步API搜索:

methods: {
  async handleSearch() {
    try {
      const response = await axios.get('/api/search', {
        params: { q: this.searchQuery }
      })
      this.results = response.data
    } catch (error) {
      console.error('搜索失败:', error)
    }
  }
}

功能增强建议

  • 添加高亮匹配文本功能
  • 实现搜索历史记录
  • 增加结果分类筛选
  • 添加加载状态指示器
  • 支持键盘导航选择结果

这个Demo展示了Vue实现搜索功能的核心模式,可以根据实际需求进行扩展和优化。

vue实现搜素demo

标签: vuedemo
分享给朋友:

相关文章

vue实现高亮

vue实现高亮

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

vue实现token

vue实现token

Vue 中实现 Token 认证的方法 在 Vue 中实现 Token 认证通常涉及前端与后端的交互,包括 Token 的获取、存储、发送和刷新等操作。以下是具体实现步骤: 获取 Token 用户…

vue实现答辩

vue实现答辩

Vue 实现答辩系统的关键步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目,安装 Vue Router 管理路由,Pinia/Vuex 进行状态管理。配置 ESLint 和 Pre…

vue实现链接

vue实现链接

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

vue实现api

vue实现api

Vue 实现 API 调用 在 Vue 中调用 API 通常涉及使用 axios 或 fetch 发送 HTTP 请求,并结合 Vue 的响应式特性管理数据。以下是常见的实现方式: 安装 axi…

vue实现 treegrid

vue实现 treegrid

Vue 实现 TreeGrid 的方法 使用现成组件库 Element UI、Ant Design Vue 等流行组件库提供了现成的 TreeTable/TreeGrid 组件,可直接使用。 El…