当前位置:首页 > 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 请求获取过滤后的数据。

vue实现搜索表格

<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.js 提供的特殊属性,用于在 DOM 元素上添加特殊行为。指令以 v- 前缀开头,例如 v-model、v-if、v-for 等。以下是实现自定义指令和常用内…

vue实现抽奖

vue实现抽奖

Vue 实现抽奖功能 基本抽奖逻辑 创建一个Vue组件,包含奖品列表、抽奖按钮和结果显示区域。使用随机数生成器选择奖品。 <template> <div> <…

vue实现换页

vue实现换页

Vue实现页面切换的方法 在Vue中实现页面切换通常可以通过Vue Router来完成。Vue Router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。以下是几种常见的实现方式:…

vue实现评价

vue实现评价

Vue实现评价功能 数据绑定与双向绑定 Vue的核心特性是数据绑定和双向绑定,通过v-model指令可以轻松实现表单输入与应用状态之间的双向绑定。在评价功能中,可以使用v-model绑定评论文本和评分…

vue实现layout

vue实现layout

Vue 实现 Layout 布局的方法 在 Vue 中实现 Layout 布局通常涉及路由嵌套、组件化设计和动态渲染。以下是几种常见的实现方式: 使用嵌套路由 通过 Vue Router 的嵌套路由…

vue实现滚动显示

vue实现滚动显示

Vue 实现滚动显示的几种方法 在 Vue 中实现滚动显示可以通过多种方式实现,以下是几种常见的方法: 使用 CSS 动画 通过 CSS 的 animation 属性结合 @keyframes 实现…