当前位置:首页 > VUE

vue如何实现表格查询

2026-02-22 12:58:41VUE

Vue 表格查询实现方法

基于计算属性的前端过滤

通过计算属性对表格数据进行过滤,适用于数据量较小的场景。定义查询输入框绑定到 searchQuery,计算属性 filteredData 实时返回匹配结果。

<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) || 
        item.age.toString().includes(this.searchQuery)
      )
    }
  }
}
</script>

使用第三方组件库

Element UI 或 Ant Design Vue 等库提供封装好的表格查询功能。以 Element UI 为例:

vue如何实现表格查询

<template>
  <el-input v-model="searchQuery" placeholder="输入关键字"></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>
</template>

后端接口查询

对于大数据量场景,通过 API 接口实现服务端查询:

vue如何实现表格查询

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

多条件高级查询

构建查询对象处理复杂条件:

data() {
  return {
    query: {
      name: '',
      age: null,
      dateRange: []
    }
  }
},
methods: {
  buildQueryParams() {
    const params = {}
    if (this.query.name) params.name = this.query.name
    if (this.query.age) params.age = this.query.age
    if (this.query.dateRange.length === 2) {
      params.startDate = this.query.dateRange[0]
      params.endDate = this.query.dateRange[1]
    }
    return params
  }
}

性能优化建议

对于大规模数据:

  • 使用防抖(debounce)控制搜索触发频率
  • 添加加载状态避免界面卡顿
  • 考虑分页加载数据

分享给朋友:

相关文章

用css制作表格

用css制作表格

使用CSS制作表格 CSS可以用来样式化HTML表格,使其更具视觉吸引力和功能性。以下是几种常见的方法: 基础表格样式 通过CSS可以调整表格的边框、间距和颜色: <table>…

react如何实现插槽

react如何实现插槽

React 实现插槽的方法 React 本身没有直接提供类似 Vue 的插槽(slot)概念,但可以通过以下几种方式实现类似功能: 使用 props.children React 组件可以通过 pr…

vue实现表格导入

vue实现表格导入

Vue 实现表格导入的方法 使用 Element UI 的 Upload 组件 Element UI 提供了 el-upload 组件,可以方便地实现文件上传功能。结合 xlsx 库解析 Excel…

vue如何实现id

vue如何实现id

Vue 中实现 ID 的方法 在 Vue 中,可以通过多种方式为元素或组件分配唯一的 ID。以下是几种常见的方法: 使用 v-bind 绑定 ID 通过 v-bind 动态绑定 ID,可以在模板中直…

vue实现简单表格

vue实现简单表格

使用 Vue 实现简单表格 Vue 提供了多种方式实现表格功能,以下是基于 Vue 3 的两种常见方法: 基础表格实现 通过 v-for 指令循环渲染表格数据: <template>…

vue实现导出表格

vue实现导出表格

Vue 实现导出表格的方法 使用 xlsx 库导出 Excel 安装 xlsx 库 npm install xlsx 在 Vue 组件中引入 xlsx import * as XLSX from…