当前位置:首页 > VUE

vue实现搜索表格

2026-01-18 04:55:03VUE

Vue 实现搜索表格功能

数据绑定与表格渲染

在 Vue 中通过 v-model 绑定搜索输入框,实时监听用户输入。表格数据使用 v-for 动态渲染,初始数据可从 API 或本地获取。

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

计算属性处理搜索逻辑

利用 Vue 的 computed 属性实现搜索过滤,避免每次输入都触发方法调用。通过 toLowerCase() 统一大小写,提升搜索友好度。

<script>
export default {
  data() {
    return {
      searchQuery: '',
      items: [
        { id: 1, name: '张三', email: 'zhang@example.com' },
        { id: 2, name: '李四', email: 'li@example.com' }
      ]
    }
  },
  computed: {
    filteredItems() {
      return this.items.filter(item => 
        item.name.toLowerCase().includes(this.searchQuery.toLowerCase()) ||
        item.email.toLowerCase().includes(this.searchQuery.toLowerCase())
      )
    }
  }
}
</script>

样式优化与交互增强

为搜索框添加 debounce 防抖(可使用 lodash 或自定义),减少频繁触发过滤。添加无结果提示,改善用户体验。

<template>
  <div>
    <input 
      v-model="searchQuery" 
      placeholder="搜索..." 
      class="search-input"
    />
    <table v-if="filteredItems.length">
      <!-- 表格内容 -->
    </table>
    <p v-else>未找到匹配结果</p>
  </div>
</template>

<style>
.search-input {
  padding: 8px;
  margin-bottom: 16px;
  width: 300px;
}
</style>

服务端搜索集成(可选)

对于大数据量场景,可将搜索逻辑移至服务端。通过 watch 监听 searchQuery 变化,发起 API 请求获取过滤后的数据。

<script>
export default {
  watch: {
    searchQuery(newVal) {
      this.fetchFilteredData(newVal)
    }
  },
  methods: {
    async fetchFilteredData(query) {
      const res = await axios.get('/api/items', { params: { q: query } })
      this.filteredItems = res.data
    }
  }
}
</script>

vue实现搜索表格

标签: 表格vue
分享给朋友:

相关文章

vue前端实现注册

vue前端实现注册

使用 Vue 实现用户注册功能 环境准备 确保已安装 Vue CLI 或通过 CDN 引入 Vue。若使用 Vue CLI,需安装 axios 或其他 HTTP 库用于后端通信。 注册表单组件 创…

前端vue登录功能实现

前端vue登录功能实现

Vue 登录功能实现步骤 创建登录表单组件 在 Vue 项目中创建一个登录组件,通常命名为 Login.vue。该组件包含用户名和密码输入框以及提交按钮。 <template> &…

课程表vue实现

课程表vue实现

实现课程表的Vue组件 创建课程表需要设计数据结构、布局和交互逻辑。以下是一个基于Vue 3的实现方案: 数据结构设计 const timetableData = ref([ {…

vue怎么实现数据检测

vue怎么实现数据检测

Vue 数据检测的实现方式 Vue 通过响应式系统实现数据检测,核心机制基于 Object.defineProperty(Vue 2)或 Proxy(Vue 3)。以下是具体实现方法: 基于 Vue…

vue实现下拉刷新组件

vue实现下拉刷新组件

实现下拉刷新组件的核心思路 下拉刷新功能通常通过监听触摸事件、滚动位置和动画效果实现。Vue中可以利用自定义指令或封装组件完成,以下为两种常见实现方式。 基于自定义指令的实现 创建指令监听触摸事件,…

vue实现一个标签选择

vue实现一个标签选择

Vue 标签选择组件实现 基础实现 使用 Vue 的 v-for 和 v-model 指令可以快速实现标签选择功能: <template> <div class="tag-se…