当前位置:首页 > VUE

vue element实现表格

2026-03-28 05:05:39VUE

使用 Vue 和 Element UI 实现表格

安装 Element UI

确保项目已安装 Vue 和 Element UI。通过 npm 或 yarn 安装 Element UI:

npm install element-ui

main.js 中引入 Element UI:

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

Vue.use(ElementUI);

基本表格实现

在 Vue 组件中使用 el-table 组件,通过 data 属性绑定表格数据:

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="date" label="日期" width="180"></el-table-column>
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { date: '2023-01-01', name: '张三', address: '北京市' },
        { date: '2023-01-02', name: '李四', address: '上海市' },
      ]
    };
  }
};
</script>

表格排序与筛选

通过 sortablefilters 实现排序与筛选功能:

vue element实现表格

<el-table-column 
  prop="date" 
  label="日期" 
  sortable 
  width="180">
</el-table-column>

<el-table-column 
  prop="name" 
  label="姓名" 
  :filters="[{ text: '张三', value: '张三' }, { text: '李四', value: '李四' }]"
  :filter-method="filterHandler">
</el-table-column>

methods 中定义筛选方法:

methods: {
  filterHandler(value, row) {
    return row.name === value;
  }
}

分页功能

结合 el-pagination 实现分页:

<el-pagination
  @size-change="handleSizeChange"
  @current-change="handleCurrentChange"
  :current-page="currentPage"
  :page-sizes="[10, 20, 30]"
  :page-size="pageSize"
  layout="total, sizes, prev, pager, next, jumper"
  :total="total">
</el-pagination>

datamethods 中定义分页逻辑:

vue element实现表格

data() {
  return {
    currentPage: 1,
    pageSize: 10,
    total: 100
  };
},
methods: {
  handleSizeChange(val) {
    this.pageSize = val;
  },
  handleCurrentChange(val) {
    this.currentPage = val;
  }
}

自定义列模板

通过 slot-scope 自定义列内容:

<el-table-column label="操作">
  <template slot-scope="scope">
    <el-button @click="handleEdit(scope.row)">编辑</el-button>
    <el-button @click="handleDelete(scope.row)">删除</el-button>
  </template>
</el-table-column>

定义对应方法:

methods: {
  handleEdit(row) {
    console.log('编辑', row);
  },
  handleDelete(row) {
    console.log('删除', row);
  }
}

动态加载数据

通过异步请求加载表格数据:

methods: {
  fetchData() {
    axios.get('/api/data').then(response => {
      this.tableData = response.data;
    });
  }
},
created() {
  this.fetchData();
}

以上方法涵盖了 Vue 和 Element UI 实现表格的核心功能,包括基础表格、排序筛选、分页和动态数据加载。

标签: 表格vue
分享给朋友:

相关文章

vue实现主题

vue实现主题

Vue 实现主题的方法 使用 CSS 变量动态切换主题 定义全局 CSS 变量,通过修改这些变量实现主题切换。在 Vue 的根组件或全局样式中定义变量: :root { --primary-co…

vue实现数组

vue实现数组

Vue 实现数组操作的方法 在 Vue 中,数组的操作需要特别注意响应式的问题。Vue 提供了一些方法来确保数组的变动能够触发视图更新。 响应式数组方法 Vue 对以下数组方法进行了封装,确保它们能…

vue实现通讯

vue实现通讯

Vue 组件通讯方法 父子组件通讯 父组件向子组件传递数据通过 props,子组件向父组件传递数据通过 $emit 事件。 父组件模板: <child-component :message=…

vue实现rgb调色

vue实现rgb调色

Vue实现RGB调色功能 实现思路 通过Vue的数据绑定和事件处理,动态调整RGB三个通道的值,实时更新显示颜色。 核心代码示例 <template> <div…

vue实现数据删除

vue实现数据删除

vue实现数据删除的方法 使用v-for和v-on指令 在Vue中可以通过v-for指令渲染列表数据,结合v-on指令监听删除事件。定义一个方法处理删除逻辑,通常使用splice方法从数组中移除指定项…

vue实现点击提交

vue实现点击提交

Vue 实现点击提交功能 在 Vue 中实现点击提交功能通常涉及表单处理和事件绑定。以下是几种常见的实现方式: 使用 v-on 或 @ 绑定点击事件 通过 v-on:click 或简写 @click…