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

elementui filter

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

ElementUI 过滤器(Filter)使用指南

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

表格列过滤器

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

<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)对数据进行格式化。

// 注册全局过滤器
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)优化性能。

elementui filter

标签: elementuifilter
分享给朋友:

相关文章

elementui响应式布局

elementui响应式布局

响应式布局基础概念 响应式布局指页面能够根据屏幕尺寸自动调整结构和样式,确保在不同设备上呈现良好的用户体验。Element UI 基于 Vue.js,其组件默认支持响应式设计,但需结合 CSS 媒体查…

elementui table

elementui table

ElementUI Table 基本用法 ElementUI 的 Table 组件用于展示结构化数据,支持排序、筛选、分页等功能。以下是一个基础示例: <template> &l…

elementui使用

elementui使用

安装 Element UI 通过 npm 或 yarn 安装 Element UI: npm install element-ui --save # 或 yarn add element-ui 在项…

iview elementui

iview elementui

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

vue elementui

vue elementui

Vue 中使用 Element UI Element UI 是一套基于 Vue 2.0 的桌面端组件库,提供丰富的 UI 组件和交互功能。以下是如何在 Vue 项目中集成和使用 Element UI…

elementui vue2

elementui vue2

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