当前位置:首页 > 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 组件实现分页控制。

<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 实现自定义筛选逻辑。

<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 实现表格数据导出。

vue实现表格界面

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

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

相关文章

css好看的表格制作

css好看的表格制作

CSS表格美化方法 边框与间距优化 使用border-collapse合并边框,避免双线边框。设置padding增加单元格内边距,提升可读性。 table { border-collapse:…

vue 实现表格单选

vue 实现表格单选

实现表格单选的基本思路 在Vue中实现表格单选功能,通常需要结合表格组件(如el-table)和数据绑定。核心逻辑是通过点击事件更新当前选中行的唯一标识(如id),并通过:class或:style绑定…

vue实现界面跳转

vue实现界面跳转

Vue 实现界面跳转的方法 在 Vue 中实现界面跳转通常使用 Vue Router,以下是几种常见的实现方式: 使用 router-link 组件 通过声明式导航实现跳转,适合模板中使用: &l…

用css制作表格

用css制作表格

使用CSS制作表格 基础表格结构 HTML中表格由<table>、<tr>(行)、<th>(表头)和<td>(单元格)组成。基础结构如下: <t…

css制作登录界面

css制作登录界面

使用CSS制作登录界面 登录界面是网站常见的功能模块,通过CSS可以轻松实现美观且响应式的设计。以下是实现登录界面的关键步骤和代码示例。 HTML结构 基础的HTML结构包含表单、输入框和按钮等元素…

vue实现表格内容

vue实现表格内容

Vue实现表格内容的方法 使用原生HTML表格 在Vue模板中直接使用HTML的<table>标签构建表格结构,通过v-for指令动态渲染数据。 <template> &…