当前位置:首页 > VUE

vue element实现表格

2026-02-10 19:06:29VUE

使用 Vue 和 Element UI 实现表格

Element UI 提供了 el-table 组件用于快速构建功能丰富的表格。以下是实现步骤和示例代码。

安装 Element UI

确保项目已安装 Vue 和 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-tableel-table-column 定义表格结构和列:

<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: '上海市' },
        { date: '2023-01-03', name: '王五', address: '广州市' }
      ]
    };
  }
};
</script>

表格功能扩展

Element UI 的表格支持排序、筛选、分页等高级功能。

添加排序

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

添加筛选

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

添加分页

<template>
  <div>
    <el-table :data="pagedData" style="width: 100%">
      <!-- 列定义 -->
    </el-table>
    <el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-sizes="[5, 10, 20]"
      :page-size="pageSize"
      layout="total, sizes, prev, pager, next, jumper"
      :total="tableData.length">
    </el-pagination>
  </div>
</template>

<script>
export default {
  data() {
    return {
      currentPage: 1,
      pageSize: 5,
      tableData: [...],
      pagedData: []
    };
  },
  methods: {
    handleSizeChange(val) {
      this.pageSize = val;
      this.updatePagedData();
    },
    handleCurrentChange(val) {
      this.currentPage = val;
      this.updatePagedData();
    },
    updatePagedData() {
      const start = (this.currentPage - 1) * this.pageSize;
      const end = start + this.pageSize;
      this.pagedData = this.tableData.slice(start, end);
    }
  },
  created() {
    this.updatePagedData();
  }
};
</script>

自定义列模板

通过插槽自定义列内容:

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

响应式表格

动态加载数据时,可通过 v-ifloading 属性控制加载状态:

<el-table :data="tableData" v-loading="isLoading">
  <!-- 列定义 -->
</el-table>

通过以上方法,可以快速实现功能丰富的表格,并根据需求灵活扩展。

vue element实现表格

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

相关文章

vue前端实现搜索

vue前端实现搜索

实现搜索功能的基本方法 在Vue中实现搜索功能通常涉及以下几个关键步骤,结合数据绑定、计算属性和方法调用来动态过滤和显示结果。 数据绑定与输入处理 使用v-model双向绑定搜索输入框的值,监听用…

vue怎么实现文件树

vue怎么实现文件树

Vue 实现文件树的方法 使用递归组件 递归组件是处理嵌套数据结构的理想方式。文件树通常包含文件夹和文件的嵌套结构,适合用递归组件实现。 <template> <ul>…

vue中如何实现循环

vue中如何实现循环

在 Vue 中实现循环 Vue 提供了 v-for 指令用于实现循环渲染列表数据。v-for 可以遍历数组、对象或数字范围,生成动态的 DOM 元素。 遍历数组 使用 v-for 遍历数组时,语法…

vue异步组建实现原理

vue异步组建实现原理

Vue 异步组件实现原理 Vue 的异步组件允许将组件按需加载,通常用于代码分割或延迟加载非关键组件。其核心原理基于 Promise 和动态导入。 基本实现方式 通过 defineAsyncComp…

vue实现文章锚点定位

vue实现文章锚点定位

实现文章锚点定位的方法 在Vue中实现文章锚点定位可以通过多种方式完成,以下是几种常见的方法: 使用原生HTML锚点 通过HTML的id属性和<a>标签的href属性实现锚点跳转。在Vu…

vue实现钟表

vue实现钟表

使用 Vue 实现动态钟表 以下是一个基于 Vue 3 的动态钟表实现方案,包含时分秒指针和数字时间显示。 模板部分 <template> <div class="clock-…