当前位置:首页 > VUE

vue表格预览实现

2026-01-19 14:39:34VUE

Vue 表格预览实现

使用 Element UI 的表格组件

Element UI 提供了功能丰富的表格组件,可以快速实现数据展示和预览。安装 Element UI 后,通过 el-table 组件渲染数据。

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="name" label="姓名"></el-table-column>
    <el-table-column prop="age" label="年龄"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { name: '张三', age: 20 },
        { name: '李四', age: 22 }
      ]
    }
  }
}
</script>

自定义表格样式

通过 CSS 调整表格样式,例如边框、行高、字体等,使其更符合需求。

<style>
.el-table {
  border: 1px solid #ebeef5;
}
.el-table th {
  background-color: #f5f7fa;
}
</style>

添加分页功能

结合 el-pagination 组件实现分页功能,提升大数据量的浏览体验。

vue表格预览实现

<template>
  <div>
    <el-table :data="tableData" style="width: 100%">
      <el-table-column prop="name" label="姓名"></el-table-column>
      <el-table-column prop="age" label="年龄"></el-table-column>
    </el-table>
    <el-pagination
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-size="pageSize"
      layout="total, prev, pager, next"
      :total="total">
    </el-pagination>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [],
      currentPage: 1,
      pageSize: 10,
      total: 0
    }
  },
  methods: {
    handleCurrentChange(val) {
      this.currentPage = val;
      this.fetchData();
    },
    fetchData() {
      // 模拟数据请求
      this.tableData = [
        { name: '张三', age: 20 },
        { name: '李四', age: 22 }
      ];
      this.total = 2;
    }
  },
  created() {
    this.fetchData();
  }
}
</script>

实现表格数据的动态加载

通过 API 请求动态加载表格数据,适用于实际项目中的数据交互。

<script>
export default {
  methods: {
    fetchData() {
      axios.get('/api/data').then(response => {
        this.tableData = response.data.list;
        this.total = response.data.total;
      });
    }
  }
}
</script>

添加表格操作列

在表格中添加操作列,例如编辑、删除按钮,增强交互性。

vue表格预览实现

<template>
  <el-table :data="tableData">
    <el-table-column prop="name" label="姓名"></el-table-column>
    <el-table-column prop="age" label="年龄"></el-table-column>
    <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>
  </el-table>
</template>

<script>
export default {
  methods: {
    handleEdit(row) {
      console.log('编辑', row);
    },
    handleDelete(row) {
      console.log('删除', row);
    }
  }
}
</script>

表格数据导出

使用第三方库如 xlsx 实现表格数据导出为 Excel 文件。

<script>
import XLSX from 'xlsx';

export default {
  methods: {
    exportToExcel() {
      const worksheet = XLSX.utils.json_to_sheet(this.tableData);
      const workbook = XLSX.utils.book_new();
      XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
      XLSX.writeFile(workbook, 'data.xlsx');
    }
  }
}
</script>

表格数据的筛选和排序

通过 el-table 的内置功能实现数据的筛选和排序。

<template>
  <el-table :data="tableData" :default-sort="{prop: 'age', order: 'descending'}">
    <el-table-column prop="name" label="姓名" sortable></el-table-column>
    <el-table-column prop="age" label="年龄" sortable></el-table-column>
  </el-table>
</template>

以上方法可以根据实际需求灵活组合,实现功能完善的表格预览功能。

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

相关文章

jq 实现 vue

jq 实现 vue

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

vue实现setinterval

vue实现setinterval

在 Vue 中使用 setInterval Vue 中可以通过生命周期钩子和方法结合 setInterval 实现定时任务。以下是一个完整的实现示例: <template> <…

vue实现flbook

vue实现flbook

Vue 实现类似 Flbook 的翻页效果 要实现类似 Flbook 的翻页效果,可以使用 Vue 结合 CSS 动画和 JavaScript 事件处理。以下是实现方法: 安装依赖 需要安装 vue…

vue递归实现

vue递归实现

vue递归实现方法 在Vue中实现递归组件通常用于树形结构、嵌套菜单等场景。以下是具体实现方式: 使用组件name属性递归 定义一个组件时,通过name属性让组件可以在自身模板中调用自己:…

vue实现烟花

vue实现烟花

Vue 实现烟花效果 在 Vue 中实现烟花效果可以通过结合 CSS 动画和 JavaScript 动态生成烟花元素。以下是具体实现方法: 动态生成烟花元素 通过 Vue 的 v-for 动态生成烟…

vue实现settimeout

vue实现settimeout

在 Vue 中实现 setTimeout Vue 中可以通过 JavaScript 原生的 setTimeout 方法实现延时操作,但需要注意结合 Vue 的响应式特性和生命周期管理。以下是几种常见实…