当前位置:首页 > 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 为例:

<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
        }, {})
      )
    }
  }
}

数据持久化方案

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

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实现表格数据录入

分享给朋友:

相关文章

css好看的表格制作

css好看的表格制作

CSS表格美化方法 边框与间距优化 使用border-collapse合并边框,避免双线边框。设置padding增加单元格内边距,提升可读性。 table { border-collapse:…

css 制作表格

css 制作表格

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

css表格表单制作

css表格表单制作

CSS表格制作 使用CSS创建表格主要涉及<table>标签及其子元素的样式控制。以下是一个基础示例: <table class="styled-table"> <…

css制作三行三列表格

css制作三行三列表格

使用HTML和CSS创建三行三列表格 通过HTML的<table>标签结合CSS样式可以轻松实现三行三列的表格结构。 <table class="three-by-three"&…

vue表格实现教学

vue表格实现教学

基础表格实现 使用 Vue 的 v-for 指令渲染数组数据到表格中。 <template> <table> <thead> <…

vue实现重置表格数据

vue实现重置表格数据

重置表格数据的方法 在Vue中重置表格数据通常涉及清空或重新初始化数据绑定的数组或对象。以下是几种常见实现方式: 直接重置数据源 对于基于数组的表格数据,可以直接将数据数组重置为空或初始值:…