当前位置:首页 > VUE

vue 表格实现

2026-01-11 20:58:31VUE

Vue 表格实现方法

基础表格实现

使用 el-table 组件(Element UI)实现基础表格:

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

自定义列模板

通过插槽自定义列内容:

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

表格排序与筛选

添加排序和筛选功能:

vue 表格实现

<el-table-column 
  prop="date" 
  label="日期" 
  sortable
  :filters="[{text: '2023-01-01', value: '2023-01-01'}]"
  :filter-method="filterHandler">
</el-table-column>

分页功能

结合分页组件实现数据分页:

<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, jumper"
  :total="total">
</el-pagination>

虚拟滚动优化

对于大数据量表格,可使用虚拟滚动:

vue 表格实现

<el-table
  :data="tableData"
  height="500"
  row-key="id"
  :row-height="50">
  <!-- 列定义 -->
</el-table>

响应式表格

根据屏幕尺寸调整表格显示:

computed: {
  tableHeight() {
    return window.innerHeight - 200
  }
}
<el-table :height="tableHeight"></el-table>

表格导出功能

实现表格数据导出为Excel:

import XLSX from 'xlsx'

exportTable() {
  const wb = XLSX.utils.table_to_book(document.querySelector('.el-table'))
  XLSX.writeFile(wb, '表格数据.xlsx')
}

动态列生成

根据配置动态生成列:

computed: {
  tableColumns() {
    return this.columnConfig.map(config => {
      return {
        prop: config.field,
        label: config.label,
        width: config.width || ''
      }
    })
  }
}
<el-table-column 
  v-for="col in tableColumns" 
  :key="col.prop"
  :prop="col.prop"
  :label="col.label"
  :width="col.width">
</el-table-column>

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

相关文章

vue实现单页面

vue实现单页面

Vue 实现单页面应用(SPA) Vue.js 是一个渐进式框架,非常适合构建单页面应用(SPA)。SPA 的核心特点是整个应用只有一个 HTML 页面,通过动态加载内容实现页面切换,无需重新加载整个…

vue 实现滚动

vue 实现滚动

实现滚动的基本方法 在Vue中实现滚动效果可以通过多种方式完成,包括使用原生JavaScript、CSS或第三方库。以下是一些常见的方法: 使用window.scrollTo方法实现页面滚动 可以通…

vue实现fadein

vue实现fadein

Vue 实现 FadeIn 效果 在 Vue 中实现淡入(FadeIn)效果可以通过 CSS 过渡、动画或第三方库实现。以下是几种常见方法: 使用 CSS 过渡 通过 Vue 的过渡系统结合 CSS…

vue实现逻辑

vue实现逻辑

Vue 实现逻辑的核心概念 Vue.js 是一个渐进式 JavaScript 框架,其核心逻辑围绕数据驱动和组件化开发。通过响应式系统、虚拟 DOM 和组件生命周期等机制,Vue 实现了高效的前端开发…

vue实现换肤

vue实现换肤

使用 CSS 变量实现换肤 在 Vue 项目中,可以通过 CSS 变量(Custom Properties)动态切换主题色。CSS 变量可以在运行时修改,适合实现换肤功能。 定义全局 CSS 变量…

vue 实现注册

vue 实现注册

Vue 实现注册功能 注册功能通常包括表单验证、数据提交和用户反馈。以下是实现注册功能的步骤: 1. 创建注册表单组件 在 Vue 项目中创建一个注册表单组件,包含用户名、邮箱、密码等输入字段。…