当前位置:首页 > VUE

vue如何实现表格查询

2026-01-21 21:50:56VUE

Vue 实现表格查询的方法

使用计算属性过滤数据

在 Vue 中可以通过计算属性对表格数据进行过滤,实现查询功能。定义一个计算属性,根据输入的关键字返回过滤后的数据列表。

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

<script>
export default {
  data() {
    return {
      searchQuery: '',
      items: [
        { id: 1, name: 'John', age: 25 },
        { id: 2, name: 'Jane', age: 30 }
      ]
    }
  },
  computed: {
    filteredItems() {
      return this.items.filter(item => 
        item.name.toLowerCase().includes(this.searchQuery.toLowerCase())
      )
    }
  }
}
</script>

使用第三方表格组件

对于更复杂的表格查询需求,可以使用第三方表格组件如 Element UI 或 Ant Design Vue,它们内置了查询功能。

vue如何实现表格查询

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="date" label="Date" width="180"></el-table-column>
    <el-table-column prop="name" label="Name" width="180"></el-table-column>
    <el-table-column prop="address" label="Address"></el-table-column>
  </el-table>
  <el-input v-model="searchInput" placeholder="Search name"></el-input>
</template>

<script>
export default {
  data() {
    return {
      searchInput: '',
      tableData: [/* your data */]
    }
  },
  computed: {
    filteredTableData() {
      return this.tableData.filter(data => 
        data.name.includes(this.searchInput)
      )
    }
  }
}
</script>

后端分页查询

当数据量很大时,建议将查询逻辑放到后端,前端只发送查询参数并接收返回结果。

vue如何实现表格查询

methods: {
  async searchTable() {
    const params = {
      keyword: this.searchKeyword,
      page: this.currentPage
    }
    const res = await axios.get('/api/items', { params })
    this.tableData = res.data
  }
}

多条件查询

实现多条件查询可以扩展过滤逻辑,组合多个查询条件。

computed: {
  filteredItems() {
    return this.items.filter(item => {
      const nameMatch = item.name.toLowerCase().includes(this.nameQuery.toLowerCase())
      const ageMatch = item.age.toString().includes(this.ageQuery)
      return nameMatch && ageMatch
    })
  }
}

使用 Lodash 进行防抖查询

对于频繁触发的查询输入,可以使用 Lodash 的防抖函数优化性能。

import { debounce } from 'lodash'

methods: {
  search: debounce(function() {
    // your search logic
  }, 500)
}

分享给朋友:

相关文章

css表格制作

css表格制作

CSS 表格制作基础 使用 CSS 可以创建美观且响应式的表格。以下是一些基本方法: table 元素用于定义表格,tr 定义行,td 定义单元格,th 定义表头单元格。 <table>…

css表格的制作方法

css表格的制作方法

基础表格结构 使用<table>标签创建表格框架,<tr>定义行,<td>定义单元格: <table> <tr> <td…

vue如何实现记住我

vue如何实现记住我

实现“记住我”功能的步骤 在Vue中实现“记住我”功能通常涉及前端保存用户登录状态(如token)到本地存储,并在下次访问时自动恢复登录状态。以下是具体实现方法: 使用localStorage或co…

css 制作表格

css 制作表格

CSS 制作表格的方法 使用 CSS 制作表格可以通过多种方式实现,包括原生 HTML 表格样式、Flexbox 布局或 Grid 布局。以下是几种常见的方法: 原生 HTML 表格样式 HTML…

uniapp 表格导入

uniapp 表格导入

uniapp 表格导入的实现方法 使用 uni.chooseFile 选择文件 在 uniapp 中,可以通过 uni.chooseFile API 让用户选择本地文件。该 API 支持多平台,包括…

vue实现表格追加

vue实现表格追加

实现表格数据追加的方法 在Vue中实现表格数据追加可以通过多种方式完成,主要涉及数据绑定和数组操作。以下是几种常见的方法: 数据绑定与v-for指令 通过v-for指令渲染表格数据,利用数组的co…