当前位置:首页 > VUE

vue table组件实现

2026-03-08 06:44:35VUE

Vue Table 组件实现方法

基础表格实现

使用el-table组件快速构建表格,需绑定数据源并定义列:

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

动态列渲染

通过v-for动态生成表格列:

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

自定义列模板

使用插槽实现复杂单元格内容:

vue table组件实现

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

表格排序与筛选

添加sortablefilters属性实现功能:

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

分页功能实现

结合el-pagination组件:

vue table组件实现

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

性能优化建议

大数据量时启用虚拟滚动:

<el-table
  :data="tableData"
  height="400"
  v-loading="loading"
  row-key="id">
</el-table>

自定义样式

通过CSS覆盖默认样式:

.el-table .warning-row {
  background-color: #fff8e6;
}
.el-table .success-row {
  background-color: #f0f9eb;
}

标签: 组件vue
分享给朋友:

相关文章

vue实现文字播放栏

vue实现文字播放栏

Vue 实现文字播放栏(跑马灯效果) 方法一:使用 CSS 动画 + Vue 数据绑定 通过 CSS 的 @keyframes 实现动画效果,结合 Vue 的动态数据绑定控制内容。 <tem…

vue组件传值实现分页

vue组件传值实现分页

Vue 组件传值实现分页 在Vue中实现分页功能,通常需要父子组件之间的数据传递。以下是几种常见的传值方法: 使用props和$emit 父组件通过props向子组件传递数据,子组件通过$emit向…

vue实现计时

vue实现计时

Vue 实现计时功能 在 Vue 中实现计时功能可以通过多种方式完成,以下是几种常见的方法: 使用 setInterval 实现基础计时器 通过 setInterval 和 clearInterva…

vue实现递归

vue实现递归

Vue 实现递归组件的方法 在 Vue 中实现递归组件通常用于处理树形结构数据(如菜单、评论列表、文件目录等)。以下是具体实现方法: 定义递归组件 通过 name 选项让组件可以递归调用自身: &…

vue 实现表单

vue 实现表单

Vue 表单实现方法 Vue.js 提供了多种方式实现表单,包括双向数据绑定、表单验证和动态表单生成。以下是常见的实现方法: 基础表单绑定 使用 v-model 指令实现表单元素与数据的双向绑定:…

vue实现radio

vue实现radio

Vue 实现 Radio 按钮 在 Vue 中实现 Radio 按钮可以通过 v-model 进行数据绑定,结合 input 元素的 type="radio" 属性。以下是一个基本示例: <t…