当前位置:首页 > VUE

vue实现表格界面

2026-03-28 22:26:57VUE

使用 Vue 实现表格界面

基础表格实现

使用 el-table 组件可以快速创建基础表格结构。需要定义 data 属性绑定表格数据,columns 定义列配置。

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

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

动态列渲染

通过 v-for 动态渲染列配置,适合列数量不固定的场景。

<template>
  <el-table :data="tableData">
    <el-table-column 
      v-for="col in columns" 
      :key="col.prop"
      :prop="col.prop" 
      :label="col.label"
    />
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      columns: [
        { prop: 'date', label: '日期' },
        { prop: 'name', label: '姓名' }
      ],
      tableData: [...]
    }
  }
}
</script>

自定义单元格内容

使用插槽可以自定义单元格显示内容和样式。

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

分页功能

结合 el-pagination 组件实现分页控制。

vue实现表格界面

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

表格排序

通过 sortable 属性启用列排序功能。

<el-table-column 
  prop="date" 
  label="日期" 
  sortable
  :sort-method="customSort"
/>

表格筛选

使用 filter-method 实现自定义筛选逻辑。

vue实现表格界面

<el-table-column
  prop="status"
  label="状态"
  :filters="[
    { text: '完成', value: 'done' },
    { text: '进行中', value: 'pending' }
  ]"
  :filter-method="filterHandler"
/>

响应式表格

通过监听窗口大小变化动态调整表格尺寸。

mounted() {
  window.addEventListener('resize', this.handleResize)
},
methods: {
  handleResize() {
    this.$refs.table.doLayout()
  }
}

性能优化

对于大数据量表格,可使用虚拟滚动提升性能。

<el-table
  :data="tableData"
  height="500"
  v-loading="loading"
  row-key="id"
>
  <!-- 列配置 -->
</el-table>

导出功能

借助第三方库如 xlsx 实现表格数据导出。

import * as XLSX from 'xlsx'
methods: {
  exportExcel() {
    const wb = XLSX.utils.table_to_book(document.querySelector('.el-table'))
    XLSX.writeFile(wb, '表格数据.xlsx')
  }
}

标签: 表格界面
分享给朋友:

相关文章

css表格的制作方法

css表格的制作方法

基础表格结构 使用<table>标签创建表格框架,<tr>定义行,<td>定义单元格: <table> <tr> <td…

css表格制作表格

css表格制作表格

CSS 表格制作方法 基础表格结构 使用HTML的<table>标签创建表格框架,搭配<tr>(行)、<td>(单元格)和<th>(表头)标签: &l…

vue界面实现mqtt

vue界面实现mqtt

实现Vue界面集成MQTT通信 安装MQTT客户端库 在Vue项目中安装mqtt库,通过npm或yarn执行安装命令: npm install mqtt --save # 或 yarn add mq…

网页表格制作css代码

网页表格制作css代码

基础表格样式 使用CSS为HTML表格添加基础样式,包括边框、间距和背景色: table { width: 100%; border-collapse: collapse; margin…

vue实现表格修改

vue实现表格修改

Vue 实现表格修改的方法 使用 v-model 绑定数据 在 Vue 中可以通过 v-model 实现双向数据绑定,适用于表格单元格的编辑。 为表格的每个单元格绑定 v-model,动态修改数据。…

vue实现表格输入

vue实现表格输入

Vue实现表格输入的方法 基础表格实现 使用v-for指令动态渲染表格行和列,结合v-model实现双向数据绑定。 <template> <table> <…