当前位置:首页 > VUE

vue实现对表格数据

2026-01-20 22:29:54VUE

实现表格数据展示

在Vue中展示表格数据通常使用<table>标签或第三方组件库(如Element UI/ANT Design)。以下以原生Vue为例:

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

动态获取表格数据

通过API异步获取数据并更新表格:

export default {
  data() {
    return {
      tableData: [],
      isLoading: false
    }
  },
  async created() {
    this.isLoading = true
    try {
      const response = await fetch('/api/data')
      this.tableData = await response.json()
    } finally {
      this.isLoading = false
    }
  }
}

添加表格排序功能

实现客户端排序功能:

vue实现对表格数据

export default {
  methods: {
    sortTable(key) {
      this.tableData.sort((a, b) => {
        if (a[key] < b[key]) return -1
        if (a[key] > b[key]) return 1
        return 0
      })
    }
  }
}

实现分页功能

结合分页组件控制数据展示:

export default {
  data() {
    return {
      currentPage: 1,
      pageSize: 10,
      totalItems: 100
    }
  },
  computed: {
    paginatedData() {
      const start = (this.currentPage - 1) * this.pageSize
      return this.tableData.slice(start, start + this.pageSize)
    }
  }
}

使用Element UI表格组件

若使用Element UI可简化开发:

vue实现对表格数据

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="name" label="姓名"></el-table-column>
    <el-table-column prop="age" label="年龄"></el-table-column>
    <el-table-column prop="job" label="职业"></el-table-column>
  </el-table>
  <el-pagination
    @current-change="handlePageChange"
    :current-page="currentPage"
    :page-size="pageSize"
    :total="total">
  </el-pagination>
</template>

表格数据过滤

添加搜索过滤功能:

export default {
  data() {
    return {
      searchQuery: ''
    }
  },
  computed: {
    filteredData() {
      return this.tableData.filter(item => 
        item.name.includes(this.searchQuery) ||
        item.job.includes(this.searchQuery)
      )
    }
  }
}

表格行编辑功能

实现行内编辑:

<template>
  <td v-if="editing !== index">{{ value }}</td>
  <td v-else>
    <input v-model="tempValue" @blur="saveEdit(index)">
  </td>
</template>

<script>
export default {
  methods: {
    editRow(index, value) {
      this.editing = index
      this.tempValue = value
    },
    saveEdit(index) {
      this.tableData[index].value = this.tempValue
      this.editing = null
    }
  }
}
</script>

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

相关文章

vue实现数据渲染

vue实现数据渲染

Vue 数据渲染的实现方式 Vue.js 提供了多种数据渲染的方式,包括插值表达式、指令和计算属性等。以下是常见的实现方法: 插值表达式 使用双大括号 {{ }} 将数据绑定到模板中,数据变化时会自…

vue实现表格读取数据

vue实现表格读取数据

Vue 实现表格数据读取 在 Vue 中实现表格数据读取通常涉及以下关键步骤: 数据绑定与表格渲染 通过 v-for 指令动态渲染表格行,数据通常存储在组件的 data 或 Vuex 状态中: &…

vue实现数据结构图

vue实现数据结构图

Vue 实现数据结构图的方法 使用第三方库 Vue 可以与多种图表库结合使用,例如 D3.js、ECharts 或 Vis.js。这些库提供了强大的图形渲染能力,适合展示复杂的数据结构图。 安装 E…

vue数据劫持实现

vue数据劫持实现

Vue 数据劫持实现原理 Vue 的数据劫持主要通过 Object.defineProperty 或 Proxy 实现,用于监听对象属性的变化并触发更新。以下是核心实现方式: 基于 Object.d…

css制作表格

css制作表格

CSS 制作表格的方法 使用 CSS 可以灵活地创建和样式化表格,以下是几种常见的方法: 使用 HTML 表格标签结合 CSS 样式 通过 HTML 的 <table>、<tr&g…

uniapp 表格导入

uniapp 表格导入

uniapp 表格导入的实现方法 使用 uni.chooseFile 选择文件 在 uniapp 中,可以通过 uni.chooseFile API 让用户选择本地文件。该 API 支持多平台,包括…