当前位置:首页 > 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 实现排序与筛选功能:

<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 中定义分页逻辑:

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);
  }
}

动态加载数据

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

vue element实现表格

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

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

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

相关文章

项目基于vue实现

项目基于vue实现

基于Vue实现项目的关键方法 搭建基础环境 安装Node.js和npm/yarn,确保开发环境具备运行Vue的能力。通过Vue CLI快速初始化项目结构,选择所需配置(如Babel、Router、Vu…

如何实现vue表格联动

如何实现vue表格联动

实现Vue表格联动的方法 使用Vue的响应式数据和计算属性 通过Vue的响应式数据特性,可以轻松实现表格之间的联动。定义一个共享的数据源,并在多个表格组件中使用这个数据源。利用计算属性对数据进行处理,…

vue中如何实现循环

vue中如何实现循环

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

vue computed 实现

vue computed 实现

computed 的基本用法 在 Vue 中,computed 用于声明计算属性,这些属性基于响应式依赖进行缓存。只有当依赖发生变化时,计算属性才会重新计算。 new Vue({ data: {…

jq 实现 vue

jq 实现 vue

jq 实现 Vue 的核心功能 jq 是一个轻量级的 JavaScript 库,主要用于 DOM 操作和事件处理。虽然它不能完全替代 Vue,但可以通过一些技巧模拟 Vue 的核心功能,如数据绑定、事…

vue 实现级联

vue 实现级联

Vue 实现级联选择器 级联选择器(Cascader)常用于省市区选择、分类选择等场景。Vue 中可以通过 Element UI、Ant Design Vue 等 UI 库实现,也可以手动封装。 使…