当前位置:首页 > 前端教程

elementui filter

2026-01-14 20:05:11前端教程

ElementUI 过滤器(Filter)使用指南

ElementUI 是一套基于 Vue.js 的组件库,常用于快速构建前端界面。过滤器(Filter)在 ElementUI 中主要用于表格(Table)组件的列数据筛选或格式化显示。以下是常见的使用方法和示例。

表格列过滤器

在 ElementUI 的表格组件中,可以通过 filtersfilter-method 属性实现列数据的筛选功能。

elementui filter

<el-table :data="tableData">
  <el-table-column
    prop="status"
    label="状态"
    :filters="[
      { text: '启用', value: 'active' },
      { text: '禁用', value: 'inactive' }
    ]"
    :filter-method="filterStatus">
  </el-table-column>
</el-table>
methods: {
  filterStatus(value, row) {
    return row.status === value;
  }
}
  • filters 定义筛选选项,text 是显示文本,value 是筛选值。
  • filter-method 是自定义筛选函数,参数为筛选值 value 和当前行数据 row,返回 true 表示匹配。

全局过滤器(Vue Filter)

ElementUI 本身不提供全局过滤器功能,但可以结合 Vue 的过滤器(Filter)对数据进行格式化。

elementui filter

// 注册全局过滤器
Vue.filter('formatDate', function(value) {
  if (!value) return '';
  return new Date(value).toLocaleDateString();
});
<el-table :data="tableData">
  <el-table-column prop="createTime" label="创建时间">
    <template slot-scope="scope">
      {{ scope.row.createTime | formatDate }}
    </template>
  </el-table-column>
</el-table>

自定义筛选弹出框

对于更复杂的筛选需求,可以通过 scoped slot 自定义筛选界面。

<el-table :data="tableData">
  <el-table-column prop="name" label="姓名">
    <template slot="header" slot-scope="scope">
      <el-input
        v-model="searchName"
        size="mini"
        placeholder="输入姓名筛选"
        @change="handleNameFilter"/>
    </template>
  </el-table-column>
</el-table>
data() {
  return {
    searchName: '',
    tableData: [] // 原始数据
  };
},
methods: {
  handleNameFilter() {
    this.tableData = this.originalData.filter(item => 
      item.name.includes(this.searchName)
    );
  }
}

表单输入框过滤器

ElementUI 的输入框(Input)可以通过监听事件实现实时过滤。

<el-input
  v-model="searchText"
  placeholder="输入关键词过滤"
  @input="handleFilter">
</el-input>
<el-table :data="filteredData"></el-table>
data() {
  return {
    searchText: '',
    originalData: [],
    filteredData: []
  };
},
methods: {
  handleFilter() {
    this.filteredData = this.originalData.filter(item =>
      item.name.includes(this.searchText)
    );
  }
}

注意事项

  • 表格筛选功能需要数据源支持,确保 tableData 是可响应的。
  • 全局过滤器需在 Vue 实例化前注册。
  • 复杂筛选逻辑建议通过计算属性(computed)优化性能。

标签: elementuifilter
分享给朋友:

相关文章

elementui获取input的值

elementui获取input的值

获取 input 值的常用方法 在 Element UI 中,可以通过 v-model 双向绑定或 ref 引用的方式获取 input 组件的值。 使用 v-model 双向绑定 <te…

elementui升级plus

elementui升级plus

Element UI 升级到 Element Plus 的方法 Element Plus 是 Element UI 的升级版本,专为 Vue 3 设计,提供了更好的性能和更多新特性。以下是升级的具体步…

iview elementui

iview elementui

iview与Element UI对比 iview和Element UI都是基于Vue.js的UI组件库,适用于快速开发企业级中后台产品。以下是两者的主要差异和特点: 设计风格 iview采用圆…

elementui组件

elementui组件

ElementUI 组件概述 ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件,适用于快速开发中后台系统。以下是其核心组件分类及典型用法。 基础组件 Butto…

elementui vue2

elementui vue2

使用 Element UI 与 Vue 2 的指南 Element UI 是一个基于 Vue 2 的组件库,专为开发者、设计师和产品经理设计,提供丰富的组件和交互方式。 安装 Element UI…

elementui iview

elementui iview

Element UI 和 iView 对比 Element UI 和 iView 都是基于 Vue.js 的 UI 组件库,广泛应用于企业级中后台系统的开发。以下是两者的主要特点和差异: Elem…