当前位置:首页 > VUE

vue element实现表格

2026-03-07 18:58:40VUE

Vue Element 实现表格的方法

安装 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);

基本表格实现

使用 el-table 组件实现基础表格。以下是一个简单示例:

<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>

表格排序

通过 sortable 属性实现列排序:

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

表格筛选

使用 filtersfilter-method 实现筛选功能:

<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-table :data="currentPageData" style="width: 100%">
  <!-- 表格列定义 -->
</el-table>
<el-pagination
  @size-change="handleSizeChange"
  @current-change="handleCurrentChange"
  :current-page="currentPage"
  :page-sizes="[10, 20, 30, 40]"
  :page-size="pageSize"
  layout="total, sizes, prev, pager, next, jumper"
  :total="tableData.length">
</el-pagination>

在 data 和 methods 中定义分页逻辑:

data() {
  return {
    currentPage: 1,
    pageSize: 10,
    tableData: [...],
    currentPageData: []
  };
},
methods: {
  handleSizeChange(val) {
    this.pageSize = val;
    this.updateCurrentPageData();
  },
  handleCurrentChange(val) {
    this.currentPage = val;
    this.updateCurrentPageData();
  },
  updateCurrentPageData() {
    const start = (this.currentPage - 1) * this.pageSize;
    const end = start + this.pageSize;
    this.currentPageData = this.tableData.slice(start, end);
  }
}

表格行编辑

通过作用域插槽实现行内编辑功能:

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

在 methods 中定义编辑方法:

methods: {
  handleEdit(row) {
    // 编辑逻辑
  }
}

表格多选

通过 type="selection" 实现多选功能:

<el-table :data="tableData" @selection-change="handleSelectionChange">
  <el-table-column type="selection" width="55"></el-table-column>
  <!-- 其他列 -->
</el-table>

在 methods 中处理选中项:

methods: {
  handleSelectionChange(val) {
    this.selectedRows = val;
  }
}

表格树形数据

使用 tree-propsrow-key 实现树形表格:

<el-table
  :data="treeData"
  row-key="id"
  :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
  <el-table-column prop="label" label="名称"></el-table-column>
</el-table>

表格自定义样式

通过 header-cell-stylecell-style 自定义表格样式:

vue element实现表格

<el-table
  :data="tableData"
  :header-cell-style="{background: '#f5f7fa', color: '#606266'}"
  :cell-style="{padding: '8px 0'}">
</el-table>

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

相关文章

vue 实现豆瓣

vue 实现豆瓣

以下是基于 Vue 实现豆瓣电影类功能的实现方案,涵盖核心模块和技术要点: 数据获取与 API 调用 使用豆瓣开放 API(需注意调用频率限制)或第三方代理接口 推荐 axios 进行异步请求,配合…

vue实现jqueryui

vue实现jqueryui

Vue 实现 jQuery UI 功能 在 Vue 项目中实现类似 jQuery UI 的功能,可以通过原生 Vue 组件或第三方库来实现。以下是几种常见 jQuery UI 功能的 Vue 替代方案…

vue实现tree

vue实现tree

Vue 实现 Tree 组件 使用 Vue 实现 Tree 组件可以通过递归组件的方式来实现层级结构展示。以下是一个完整的实现方法: 基础递归组件实现 创建 Tree 组件文件 Tree.vue,使…

自实现vue

自实现vue

实现 Vue 的核心功能 要实现一个简化版的 Vue,需要理解其核心功能:数据响应式、模板编译、虚拟 DOM 和组件系统。以下是关键步骤的分解: 数据响应式 Vue 使用 Object.define…

vue实现评价

vue实现评价

Vue实现评价功能 数据绑定与双向绑定 Vue的核心特性是数据绑定和双向绑定,通过v-model指令可以轻松实现表单输入与应用状态之间的双向绑定。在评价功能中,可以使用v-model绑定评论文本和评分…

原生实现vue功能

原生实现vue功能

原生JavaScript实现Vue核心功能 使用原生JavaScript模拟Vue的核心功能需要理解响应式数据绑定、虚拟DOM和组件系统等概念。以下是关键实现方法: 响应式数据系统 通过Object…