当前位置:首页 > VUE

vue实现表格数据显示

2026-02-23 22:25:23VUE

Vue 实现表格数据显示的方法

基础表格实现

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

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

<script>
export default {
  data() {
    return {
      headers: ['姓名', '年龄', '城市'],
      tableData: [
        { 姓名: '张三', 年龄: 25, 城市: '北京' },
        { 姓名: '李四', 年龄: 30, 城市: '上海' }
      ]
    };
  }
};
</script>

使用 Element UI 表格组件

若项目中引入 Element UI,可通过 el-table 快速实现高级功能(排序、分页等):

vue实现表格数据显示

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column prop="age" label="年龄" sortable></el-table-column>
    <el-table-column prop="city" label="城市"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { name: '张三', age: 25, city: '北京' },
        { name: '李四', age: 30, city: '上海' }
      ]
    };
  }
};
</script>

动态加载远程数据

通过 axios 请求后端接口数据并绑定到表格:

vue实现表格数据显示

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

<script>
import axios from 'axios';

export default {
  data() {
    return {
      tableData: [],
      loading: false
    };
  },
  created() {
    this.fetchData();
  },
  methods: {
    fetchData() {
      this.loading = true;
      axios.get('/api/data').then(response => {
        this.tableData = response.data;
      }).finally(() => {
        this.loading = false;
      });
    }
  }
};
</script>

自定义单元格内容

通过插槽自定义单元格渲染逻辑:

<el-table-column label="状态">
  <template #default="{ row }">
    <el-tag :type="row.status === '成功' ? 'success' : 'danger'">
      {{ row.status }}
    </el-tag>
  </template>
</el-table-column>

分页与筛选

结合 el-pagination 实现分页控制:

<template>
  <el-table :data="pagedData"></el-table>
  <el-pagination
    @current-change="handlePageChange"
    :current-page="currentPage"
    :page-size="pageSize"
    :total="total">
  </el-pagination>
</template>

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

标签: 表格数据
分享给朋友:

相关文章

vue实现子表格

vue实现子表格

Vue 实现子表格的方法 在 Vue 中实现子表格可以通过多种方式完成,以下是几种常见的方法: 使用嵌套组件 创建一个父表格组件和一个子表格组件,通过 props 将数据传递给子表格组件。父表格的每…

vue双向实现数据

vue双向实现数据

Vue 双向数据绑定的实现原理 Vue 的双向数据绑定主要通过 v-model 指令实现,其核心是结合了数据劫持(Object.defineProperty 或 Proxy)和发布-订阅模式。以下是具…

表格tb制作css

表格tb制作css

使用CSS美化HTML表格 通过CSS可以自定义表格样式,使其更美观和符合设计需求。以下是一些常用方法: 基础表格样式 table { width: 100%; border-collap…

Vue实现数据检验

Vue实现数据检验

Vue 数据校验的实现方法 在Vue中实现数据校验可以通过多种方式完成,以下是常见的几种方法: 使用Vue的内置指令 Vue提供了一些内置指令如v-model和v-bind可以结合HTML5的表单验…

vue实现数据拖动

vue实现数据拖动

Vue 实现数据拖动 使用 HTML5 拖放 API HTML5 提供了原生的拖放 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 drop 事件…

用css制作表格

用css制作表格

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