当前位置:首页 > VUE

vue实现表格数据录入

2026-01-21 19:44:37VUE

Vue 实现表格数据录入的方法

基础表格数据绑定

使用 v-model 绑定表格输入框数据,配合 v-for 动态渲染表格行。适合静态数据结构或简单增删场景。

<template>
  <table>
    <tr v-for="(item, index) in tableData" :key="index">
      <td><input v-model="item.name" placeholder="姓名"></td>
      <td><input v-model="item.age" type="number" placeholder="年龄"></td>
      <td><button @click="removeRow(index)">删除</button></td>
    </tr>
    <button @click="addRow">新增行</button>
  </table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [{ name: '', age: '' }]
    }
  },
  methods: {
    addRow() {
      this.tableData.push({ name: '', age: '' })
    },
    removeRow(index) {
      this.tableData.splice(index, 1)
    }
  }
}
</script>

动态表单验证

结合 Element UIAnt Design Vue 的表格组件实现带验证的数据录入。以下以 Element UI 为例:

vue实现表格数据录入

<template>
  <el-table :data="tableData" border>
    <el-table-column prop="name" label="姓名">
      <template #default="{ row }">
        <el-input 
          v-model="row.name" 
          :rules="[{ required: true, message: '必填' }]"
        ></el-input>
      </template>
    </el-table-column>
    <el-table-column label="操作">
      <template #default="{ $index }">
        <el-button @click="deleteRow($index)">删除</el-button>
      </template>
    </el-table-column>
  </el-table>
  <el-button @click="addNewRow">新增行</el-button>
</template>

复杂数据结构处理

对于嵌套对象或动态列的场景,可使用计算属性配合自定义组件:

export default {
  data() {
    return {
      columns: ['product', 'price', 'quantity'],
      items: [
        { product: '商品A', price: 10, quantity: 1 },
        { product: '商品B', price: 20, quantity: 2 }
      ]
    }
  },
  methods: {
    addItem() {
      this.items.push(
        this.columns.reduce((obj, col) => {
          obj[col] = col === 'quantity' ? 1 : ''
          return obj
        }, {})
      )
    }
  }
}

数据持久化方案

提交数据时进行深度校验并处理:

vue实现表格数据录入

methods: {
  submitData() {
    const invalidItems = this.tableData.filter(
      item => !item.name || !item.age
    )
    if (invalidItems.length) {
      alert('请填写完整信息')
      return
    }
    axios.post('/api/save', this.tableData).then(() => {
      alert('保存成功')
    })
  }
}

性能优化建议

对于大型数据集采用虚拟滚动方案:

<template>
  <RecycleScroller
    class="table-container"
    :items="tableData"
    :item-size="50"
    key-field="id"
  >
    <template #default="{ item }">
      <tr class="table-row">
        <td><input v-model="item.name"></td>
        <td><input v-model.number="item.value"></td>
      </tr>
    </template>
  </RecycleScroller>
</template>

关键点总结:

  • 基础实现使用 v-model + v-for
  • 生产环境建议使用 UI 库的表格组件
  • 动态列需特殊处理数据结构
  • 大数据量考虑虚拟滚动方案
  • 提交前做好数据验证和错误处理

分享给朋友:

相关文章

vue实现表格

vue实现表格

Vue实现表格的方法 在Vue中实现表格可以通过多种方式完成,包括使用原生HTML表格、第三方组件库或自定义组件。以下是几种常见的方法: 使用原生HTML表格 在Vue模板中直接使用HTML的&l…

vue实现表格数据修改

vue实现表格数据修改

实现表格数据修改的基本思路 在Vue中实现表格数据修改通常涉及以下核心步骤:数据绑定、编辑状态切换、表单输入处理和数据提交。以下是一个典型实现方案: 数据绑定与渲染 使用v-for指令循环渲染表格数…

css表格制作表格

css表格制作表格

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

vue表格组件实现

vue表格组件实现

Vue表格组件实现 基础表格实现 使用el-table组件实现基础表格功能。安装Element UI后,引入el-table和el-table-column组件。 <template>…

vue实现表格内容

vue实现表格内容

Vue实现表格内容的方法 使用原生HTML表格 在Vue模板中直接使用HTML的<table>标签构建表格结构,通过v-for指令动态渲染数据。 <template> &…

怎么制作css表格

怎么制作css表格

制作CSS表格的方法 使用HTML表格标签结合CSS样式 通过HTML的<table>、<tr>、<td>等标签创建表格结构,再使用CSS美化样式。例如: <…