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

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 router

elementui router

Element UI 结合 Vue Router 的使用方法 Element UI 是一个基于 Vue.js 的组件库,而 Vue Router 是 Vue.js 的官方路由管理器。将两者结合使用可以…

elementui读音

elementui读音

关于 ElementUI 的读音 ElementUI 的读音可以拆分为两部分: Element:读作 /ˈelɪmənt/,类似于“艾-利-门特” UI:读作 /ˌjuː ˈaɪ/,即字母“U”和“…

elementui sass

elementui sass

在 Element UI 中使用 Sass Element UI 支持通过 Sass 进行样式定制,可以通过修改变量或覆盖样式来实现主题定制或组件样式调整。 安装 Sass 相关依赖: npm i…

elementui和

elementui和

ElementUI 简介 ElementUI 是一套基于 Vue.js 的桌面端组件库,由饿了么前端团队开发并开源。它提供了丰富的 UI 组件(如表格、表单、弹窗等),适用于快速构建企业级中后台管理系…

elementui npm

elementui npm

安装 Element UI 的步骤 使用 npm 安装 Element UI 是最常见的方式,适用于基于 Vue.js 的项目。 npm install element-ui -S 安装完成后,可以…

elementui tooltip

elementui tooltip

Element UI Tooltip 组件使用指南 Element UI 的 Tooltip 组件用于在鼠标悬停时显示提示信息,常用于解释按钮、图标或其他交互元素的功能。 基本用法 通过 el-t…