当前位置:首页 > VUE

vue element实现表格搜索

2026-02-25 07:40:23VUE

Vue Element 表格搜索实现方法

基础搜索功能实现

在Vue项目中结合Element UI的表格组件实现搜索功能,可以通过以下方式完成。假设有一个包含数据的表格,需要根据输入框内容进行筛选。

  1. 模板部分代码

    vue element实现表格搜索

    <template>
    <div>
     <el-input v-model="searchQuery" placeholder="输入关键字搜索" style="width: 200px"/>
     <el-table :data="filteredData">
       <el-table-column prop="name" label="姓名"></el-table-column>
       <el-table-column prop="age" label="年龄"></el-table-column>
     </el-table>
    </div>
    </template>
  2. 脚本部分代码

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

多条件高级搜索

对于需要多个搜索条件的场景,可以扩展搜索功能:

vue element实现表格搜索

<template>
  <div>
    <el-form :inline="true">
      <el-form-item label="姓名">
        <el-input v-model="searchForm.name" placeholder="姓名"></el-input>
      </el-form-item>
      <el-form-item label="年龄">
        <el-input v-model="searchForm.age" placeholder="年龄"></el-input>
      </el-form-item>
      <el-button type="primary" @click="handleSearch">搜索</el-button>
    </el-form>

    <el-table :data="filteredData">
      <!-- 表格列定义 -->
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [...], // 原始数据
      searchForm: {
        name: '',
        age: ''
      }
    }
  },
  methods: {
    handleSearch() {
      // 触发计算属性重新计算
      this.$forceUpdate()
    }
  },
  computed: {
    filteredData() {
      return this.tableData.filter(item => {
        const nameMatch = item.name.includes(this.searchForm.name)
        const ageMatch = item.age.toString().includes(this.searchForm.age)
        return nameMatch && ageMatch
      })
    }
  }
}
</script>

远程搜索实现

当数据量较大时,可以采用后端接口搜索的方式:

methods: {
  async handleSearch() {
    try {
      const res = await this.$http.get('/api/data', {
        params: this.searchForm
      })
      this.tableData = res.data
    } catch (error) {
      console.error(error)
    }
  }
}

搜索优化技巧

  1. 防抖处理减少请求频率
    
    import { debounce } from 'lodash'

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


2. 添加加载状态
```html
<el-table v-loading="loading" :data="tableData">
  1. 空状态提示
    <el-table :data="filteredData">
    <template #empty>
     <el-empty description="暂无数据或未找到匹配结果"></el-empty>
    </template>
    </el-table>

以上方法可以根据实际项目需求进行组合和调整,实现适合业务的表格搜索功能。

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

相关文章

vue公共列表的实现

vue公共列表的实现

实现 Vue 公共列表组件 公共列表组件通常用于展示重复结构的数据,例如商品列表、用户列表等。以下是一个典型的实现方式: 基础实现 创建可复用的列表组件 List.vue: <templ…

vue实现自定义登录

vue实现自定义登录

实现自定义登录的基本步骤 在Vue中实现自定义登录功能通常需要结合前端和后端技术。以下是一个基本的实现流程: 创建登录表单组件 使用Vue的单文件组件创建一个登录表单,包含用户名和密码输入框以及提…

vue实现倒计时抢券

vue实现倒计时抢券

Vue 实现倒计时抢券功能 核心逻辑 倒计时抢券功能需要结合时间计算、状态管理和界面交互。通过 Vue 的响应式特性和生命周期钩子,可以高效实现这一需求。 实现步骤 1. 数据准备 在 Vue 组件…

vue实现tag

vue实现tag

Vue 实现标签(Tag)功能 在 Vue 中实现标签(Tag)功能可以通过多种方式完成,以下是一些常见的方法和实现步骤: 使用动态组件和 v-for 通过 v-for 指令动态渲染标签列表,结合…

简单实现vue

简单实现vue

Vue 的基本实现 创建一个简单的 Vue 应用需要引入 Vue 库,并编写基本的模板和数据绑定逻辑。 <!DOCTYPE html> <html lang="en"> &…

vue实现图片

vue实现图片

Vue 实现图片功能的方法 静态图片引入 在 Vue 项目中,可以通过 src 属性直接引入静态图片。图片通常放在 public 或 assets 目录下。 <template>…