Vue.js 中使用 ElementUI 实现表格组件的排序和过滤

前言

在 Vue.js 的前端开发中,经常需要使用表格组件来展示数据。而对于大量的数据,我们可能需要对其进行排序和过滤,以便更好地展示和查找数据。ElementUI 是一个基于 Vue.js 的 UI 组件库,提供了丰富的组件和功能,其中就包括表格组件的排序和过滤功能。本文将介绍如何在 Vue.js 中使用 ElementUI 实现表格组件的排序和过滤。

实现步骤

步骤一:安装 ElementUI

首先,我们需要安装 ElementUI。可以通过 npm 安装:

npm install element-ui --save

步骤二:引入 ElementUI

在 main.js 中引入 ElementUI:

import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)

步骤三:创建表格组件

在 Vue 组件中创建表格组件,并引入 ElementUI 的 Table 组件:

<template>
  <div>
    <el-table :data="tableData" :default-sort="{prop: 'date', order: 'descending'}">
      <el-table-column prop="date" label="日期" sortable></el-table-column>
      <el-table-column prop="name" label="姓名"></el-table-column>
      <el-table-column prop="address" label="地址"></el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [{
        date: '2022-01-01',
        name: '张三',
        address: '北京市'
      }, {
        date: '2022-01-02',
        name: '李四',
        address: '上海市'
      }, {
        date: '2022-01-03',
        name: '王五',
        address: '广州市'
      }, {
        date: '2022-01-04',
        name: '赵六',
        address: '深圳市'
      }]
    }
  }
}
</script>

步骤四:实现排序和过滤

在 el-table 中使用 sortable 和 filterable 属性来实现排序和过滤功能:

<template>
  <div>
    <el-table :data="tableData" :default-sort="{prop: 'date', order: 'descending'}">
      <el-table-column prop="date" label="日期" sortable></el-table-column>
      <el-table-column prop="name" label="姓名" :filters="filters" :filter-method="filterMethod"></el-table-column>
      <el-table-column prop="address" label="地址"></el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [{
        date: '2022-01-01',
        name: '张三',
        address: '北京市'
      }, {
        date: '2022-01-02',
        name: '李四',
        address: '上海市'
      }, {
        date: '2022-01-03',
        name: '王五',
        address: '广州市'
      }, {
        date: '2022-01-04',
        name: '赵六',
        address: '深圳市'
      }],
      filters: [{
        text: '北京市',
        value: '北京市'
      }, {
        text: '上海市',
        value: '上海市'
      }, {
        text: '广州市',
        value: '广州市'
      }, {
        text: '深圳市',
        value: '深圳市'
      }]
    }
  },
  methods: {
    filterMethod(value, row) {
      return row.address.indexOf(value) !== -1
    }
  }
}
</script>

总结

通过以上步骤,我们可以很容易地在 Vue.js 中使用 ElementUI 实现表格组件的排序和过滤功能。在实际开发中,我们可以根据需求进行一些定制化的操作,例如自定义排序方式、自定义过滤器等等。希望本文对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658a349aeb4cecbf2df64ea3


纠错
反馈