当前位置:首页 > VUE

vue 实现简单表格

2026-02-18 22:33:32VUE

基础表格实现

使用 Vue 的 v-for 指令动态渲染表格数据,结合 el-table(Element UI)或原生 HTML 表格。

示例代码(原生 HTML 表格)

<template>
  <table>
    <thead>
      <tr>
        <th v-for="header in headers" :key="header">{{ header }}</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="row in tableData" :key="row.id">
        <td v-for="(value, key) in row" :key="key">{{ value }}</td>
      </tr>
    </tbody>
  </table>
</template>

<script>
export default {
  data() {
    return {
      headers: ['ID', 'Name', 'Age'],
      tableData: [
        { id: 1, name: 'Alice', age: 25 },
        { id: 2, name: 'Bob', age: 30 }
      ]
    };
  }
};
</script>

使用 Element UI 表格

Element UI 的 el-table 提供分页、排序等高级功能。

vue 实现简单表格

示例代码

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="id" label="ID" width="80"></el-table-column>
    <el-table-column prop="name" label="Name"></el-table-column>
    <el-table-column prop="age" label="Age"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: 'Alice', age: 25 },
        { id: 2, name: 'Bob', age: 30 }
      ]
    };
  }
};
</script>

动态数据绑定

通过 API 请求动态加载表格数据,结合 axios 或其他 HTTP 库。

vue 实现简单表格

示例代码

<template>
  <el-table :data="tableData" v-loading="isLoading">
    <!-- 列定义 -->
  </el-table>
</template>

<script>
import axios from 'axios';

export default {
  data() {
    return {
      tableData: [],
      isLoading: false
    };
  },
  async created() {
    this.isLoading = true;
    try {
      const response = await axios.get('https://api.example.com/data');
      this.tableData = response.data;
    } catch (error) {
      console.error('Error fetching data:', error);
    } finally {
      this.isLoading = false;
    }
  }
};
</script>

表格功能扩展

  • 分页:使用 el-paginationel-table 结合。
  • 排序:在 el-table-column 中设置 sortable 属性。
  • 筛选:通过 scoped slots 自定义筛选逻辑。

分页示例

<template>
  <el-table :data="pagedData">
    <!-- 列定义 -->
  </el-table>
  <el-pagination
    @current-change="handlePageChange"
    :current-page="currentPage"
    :page-size="pageSize"
    :total="tableData.length">
  </el-pagination>
</template>

<script>
export default {
  data() {
    return {
      currentPage: 1,
      pageSize: 10,
      tableData: [] // 原始数据
    };
  },
  computed: {
    pagedData() {
      const start = (this.currentPage - 1) * this.pageSize;
      return this.tableData.slice(start, start + this.pageSize);
    }
  },
  methods: {
    handlePageChange(page) {
      this.currentPage = page;
    }
  }
};
</script>

标签: 表格简单
分享给朋友:

相关文章

css 制作表格

css 制作表格

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

css3制作简单动画

css3制作简单动画

CSS3 制作简单动画的方法 CSS3 提供了多种方式制作动画,主要通过 transition、transform 和 animation 属性实现。以下是几种常见的实现方法。 使用 transit…

vue动态表格实现

vue动态表格实现

Vue动态表格实现方法 使用v-for指令渲染动态数据 通过v-for指令可以循环遍历数组数据生成表格行,数据变化时表格自动更新。示例代码: <template> <table…

vue 实现tab表格

vue 实现tab表格

实现 Tab 表格的基本思路 在 Vue 中实现 Tab 表格功能,通常需要结合 v-for 动态渲染表格内容,并通过 v-if 或 v-show 控制不同 Tab 的显示切换。核心逻辑是通过数据驱动…

vue 实现页面 表格

vue 实现页面 表格

Vue 实现页面表格的方法 Vue 提供了多种方式实现表格功能,可以根据需求选择不同的方案。以下是常见的实现方法: 使用原生 HTML 表格 通过 Vue 的模板语法直接渲染表格数据: <t…

vue实现表格计算

vue实现表格计算

Vue 表格计算实现方法 使用计算属性 在 Vue 中可以通过计算属性来实现表格数据的动态计算。计算属性会自动缓存结果,只有当依赖的数据发生变化时才会重新计算。 computed: { tota…