当前位置:首页 > VUE

vue实现的表格

2026-01-16 19:08:21VUE

Vue 实现表格的方法

使用原生 HTML 表格

在 Vue 模板中可以直接使用 HTML 的 <table> 标签创建表格。数据可以通过 v-for 指令动态渲染。

<template>
  <table>
    <thead>
      <tr>
        <th v-for="header in headers" :key="header">{{ header }}</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="row in rows" :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'],
      rows: [
        { id: 1, name: 'Alice', age: 25 },
        { id: 2, name: 'Bob', age: 30 }
      ]
    }
  }
}
</script>

使用第三方组件库

许多流行的 Vue UI 组件库提供了功能丰富的表格组件,例如 Element UI、Vuetify 或 Ant Design Vue。

以 Element UI 为例:

vue实现的表格

<template>
  <el-table :data="rows">
    <el-table-column prop="id" label="ID"></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 {
      rows: [
        { id: 1, name: 'Alice', age: 25 },
        { id: 2, name: 'Bob', age: 30 }
      ]
    }
  }
}
</script>

实现可编辑表格

通过结合 v-model 和自定义组件,可以实现可编辑的表格单元格。

<template>
  <table>
    <tbody>
      <tr v-for="row in rows" :key="row.id">
        <td>{{ row.id }}</td>
        <td>
          <input v-model="row.name" />
        </td>
        <td>
          <input v-model="row.age" type="number" />
        </td>
      </tr>
    </tbody>
  </table>
</template>

表格排序和过滤

可以通过计算属性实现表格数据的排序和过滤功能。

vue实现的表格

computed: {
  sortedRows() {
    return [...this.rows].sort((a, b) => a.age - b.age)
  },
  filteredRows() {
    return this.rows.filter(row => row.age > 25)
  }
}

虚拟滚动优化

对于大型数据集,可以使用虚拟滚动技术优化性能,如 vue-virtual-scroller 库。

<template>
  <RecycleScroller
    :items="rows"
    :item-size="50"
    key-field="id"
    v-slot="{ item }"
  >
    <div class="row">
      <span>{{ item.id }}</span>
      <span>{{ item.name }}</span>
      <span>{{ item.age }}</span>
    </div>
  </RecycleScroller>
</template>

响应式表格设计

使用 CSS 媒体查询或 flexbox/grid 布局实现表格在不同屏幕尺寸下的响应式表现。

@media (max-width: 600px) {
  table {
    display: block;
  }
  tr {
    display: flex;
    flex-direction: column;
  }
}

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

相关文章

vue实现滚动中断

vue实现滚动中断

Vue 实现滚动中断的方法 在 Vue 中实现滚动中断通常涉及监听滚动事件,并在特定条件下阻止默认行为或停止滚动。以下是几种常见方法: 监听滚动事件并阻止默认行为 通过 @scroll 或 @whe…

vue实现点击页面切换

vue实现点击页面切换

实现点击页面切换功能 在Vue中实现点击页面切换功能,可以通过路由跳转或组件动态渲染两种方式完成。以下是具体实现方法: 使用Vue Router实现页面跳转 安装Vue Router后,在项目中…

vue实现用户信息表

vue实现用户信息表

Vue 实现用户信息表的方法 使用 Vue CLI 创建项目 安装 Vue CLI 并初始化项目: npm install -g @vue/cli vue create user-info-tabl…

vue   实现单选

vue 实现单选

Vue 实现单选功能 在 Vue 中实现单选功能可以通过多种方式,以下是几种常见的方法: 使用原生 <input type="radio"> 绑定 v-model 通过 v-model…

vue实现store

vue实现store

Vue 实现 Store 在 Vue 中,可以通过 Vuex 或 Pinia 实现全局状态管理(Store)。以下是两种主流方案的实现方法。 使用 Vuex 实现 Store Vuex 是 Vue…

vue原型实现

vue原型实现

Vue 原型实现的关键点 Vue.js 的原型系统是其响应式机制的核心部分,通过原型链实现数据的动态绑定和依赖收集。以下是实现 Vue 原型的主要技术要点。 数据响应式原理 Vue 通过 Obje…