当前位置:首页 > VUE

vue实现搜索表格

2026-01-18 04:55:03VUE

Vue 实现搜索表格功能

数据绑定与表格渲染

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

vue实现搜索表格

<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() 统一大小写,提升搜索友好度。

vue实现搜索表格

<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 CLI 创建项目后,安装 socket.io-client 或 vue-socket.io 实现实时通信,或基于 HTTP 的 axios…

vue实现滚动截屏

vue实现滚动截屏

实现滚动截屏的基本思路 滚动截屏通常指对超出可视区域的长页面进行完整截图。在Vue中,可以通过结合DOM操作、Canvas绘制及第三方库实现。以下是具体方法: 使用html2canvas库实现 安装…

vue实现div

vue实现div

Vue 实现 DIV 元素的方法 在 Vue 中实现 DIV 元素可以通过多种方式,以下是几种常见的实现方法: 使用模板语法 在 Vue 的模板中直接使用 HTML 的 <div> 标签…

vue实现截图

vue实现截图

Vue 实现截图的方法 使用 html2canvas 库 安装 html2canvas 库: npm install html2canvas 在 Vue 组件中使用: import html2ca…

vue实现modal

vue实现modal

Vue 实现 Modal 弹窗组件 使用 Vue 实现 Modal 弹窗组件可以通过多种方式,包括原生 Vue 组件、第三方库或自定义指令。以下是几种常见方法: 原生 Vue 组件实现 创建一个基础…

vue实现单据

vue实现单据

Vue 实现单据功能的方法 使用 Vue 实现单据功能通常涉及表单设计、数据绑定、验证和提交等环节。以下是具体实现方案: 表单设计与数据绑定 使用 Vue 的 v-model 指令实现表单数据的双向…