当前位置:首页 > VUE

vue实现搜索表格

2026-03-10 10:42:44VUE

Vue实现搜索表格的方法

数据绑定与表格渲染

使用v-model绑定搜索输入框的值,结合计算属性动态过滤表格数据。示例代码:

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

<script>
export default {
  data() {
    return {
      searchQuery: '',
      tableData: [
        { id: 1, name: '张三', age: 25 },
        { id: 2, name: '李四', age: 30 }
      ]
    }
  },
  computed: {
    filteredData() {
      return this.tableData.filter(item => 
        item.name.includes(this.searchQuery)
      )
    }
  }
}
</script>

多字段搜索

扩展计算属性实现多列联合搜索:

computed: {
  filteredData() {
    const query = this.searchQuery.toLowerCase()
    return this.tableData.filter(item => 
      item.name.toLowerCase().includes(query) || 
      item.age.toString().includes(query)
    )
  }
}

使用第三方组件

对于复杂需求可结合element-ui等UI库:

<el-input v-model="searchQuery"></el-input>
<el-table :data="filteredData">
  <el-table-column prop="name" label="姓名"></el-table-column>
  <el-table-column prop="age" label="年龄"></el-table-column>
</el-table>

性能优化

大数据量时考虑分页或防抖处理:

import { debounce } from 'lodash'

methods: {
  handleSearch: debounce(function() {
    // 搜索逻辑
  }, 300)
}

服务端搜索

当数据量极大时,应改为API请求:

vue实现搜索表格

async searchData() {
  const res = await axios.get('/api/data', {
    params: { keyword: this.searchQuery }
  })
  this.tableData = res.data
}

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

相关文章

vue点击实现排序

vue点击实现排序

实现点击排序的方法 在Vue中实现点击排序功能,可以通过以下几种方式完成: 使用计算属性结合排序方法 定义一个响应式数据存储排序状态,通过计算属性动态返回排序后的数组。点击事件切换排序状态。…

vue登录逻辑的实现

vue登录逻辑的实现

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

vue实现按卡片轮播

vue实现按卡片轮播

实现卡片轮播的基本思路 在Vue中实现卡片轮播可以通过结合v-for指令和动态样式绑定完成。核心是维护一个当前显示卡片的索引,通过CSS过渡效果实现平滑切换。 基础实现步骤 模板部分 使用v-for…

vue实现动态用户表格

vue实现动态用户表格

Vue 实现动态用户表格 数据准备与响应式绑定 在 Vue 中实现动态用户表格,需先定义响应式数据。通过 data 或 ref(Composition API)存储用户数据数组,确保数据变化能触发视图…

vue插槽实现

vue插槽实现

插槽的基本概念 Vue插槽(Slot)是一种内容分发机制,允许父组件向子组件传递模板片段,子组件通过<slot>标签定义接收位置。插槽的核心作用是增强组件的灵活性和复用性。 默认插槽 子…

实现简易vue

实现简易vue

实现简易 Vue 的核心思路 Vue 的核心功能包括数据响应式、模板编译和虚拟 DOM。以下是一个简易实现方案,涵盖核心功能模块。 数据响应式系统 通过 Object.defineProperty…