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

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中文网

elementui中文网

Element UI 中文网相关信息 Element UI 是一款基于 Vue.js 的开源 UI 组件库,由饿了么前端团队开发和维护。以下是关于 Element UI 中文网的相关信息: 官方网站…

elementui视频

elementui视频

以下是关于 ElementUI 视频资源的整理,涵盖教程、实战案例和官方资源: ElementUI 官方视频资源 ElementUI 官方文档虽以文字为主,但部分社区或第三方平台可能有官方团队发布的…

elementui特色

elementui特色

组件化设计 Element UI 提供丰富的组件库,包括表单、表格、导航、通知等常用 UI 元素。所有组件均采用模块化设计,支持按需引入,减少项目体积。 响应式布局 组件默认适配不同屏幕尺寸,内置栅…

elementui表头

elementui表头

ElementUI 表头自定义方法 修改表头样式 通过 header-cell-class-name 属性为表头单元格添加自定义类名,配合 CSS 实现样式修改。例如更改背景色和字体: .el-ta…

elementui开发

elementui开发

ElementUI 开发指南 ElementUI 是一套基于 Vue.js 的桌面端组件库,提供丰富的 UI 组件和交互功能。以下是开发中的关键要点: 安装与引入 通过 npm 安装 Element…

elementui license

elementui license

ElementUI 的许可证信息 ElementUI 是一款基于 Vue.js 的组件库,其许可证采用 MIT License。以下是关键点: MIT License 是一种宽松的开源许可证,允许用…