当前位置:首页 > VUE

vue实现表格添加删除

2026-02-23 03:12:50VUE

Vue 实现表格添加与删除功能

在Vue中实现表格的添加和删除功能,通常涉及数据绑定、事件处理和动态渲染。以下是具体实现方法:

数据准备

定义表格数据数组和表单输入绑定的数据对象:

data() {
  return {
    tableData: [
      { id: 1, name: '张三', age: 25 },
      { id: 2, name: '李四', age: 30 }
    ],
    form: {
      name: '',
      age: ''
    },
    nextId: 3
  }
}

添加功能实现

创建添加数据的方法,将表单数据推送到表格数组中:

methods: {
  addItem() {
    if (!this.form.name || !this.form.age) return

    this.tableData.push({
      id: this.nextId++,
      name: this.form.name,
      age: Number(this.form.age)
    })

    this.form.name = ''
    this.form.age = ''
  }
}

模板部分绑定表单和添加按钮:

<div>
  <input v-model="form.name" placeholder="姓名">
  <input v-model="form.age" placeholder="年龄" type="number">
  <button @click="addItem">添加</button>
</div>

删除功能实现

创建删除方法,通过过滤或splice移除指定项:

methods: {
  deleteItem(id) {
    this.tableData = this.tableData.filter(item => item.id !== id)
    // 或使用splice:
    // const index = this.tableData.findIndex(item => item.id === id)
    // this.tableData.splice(index, 1)
  }
}

模板中为每行添加删除按钮:

<table>
  <tr v-for="item in tableData" :key="item.id">
    <td>{{ item.name }}</td>
    <td>{{ item.age }}</td>
    <td>
      <button @click="deleteItem(item.id)">删除</button>
    </td>
  </tr>
</table>

完整组件示例

<template>
  <div>
    <div>
      <input v-model="form.name" placeholder="姓名">
      <input v-model="form.age" placeholder="年龄" type="number">
      <button @click="addItem">添加</button>
    </div>

    <table>
      <tr v-for="item in tableData" :key="item.id">
        <td>{{ item.name }}</td>
        <td>{{ item.age }}</td>
        <td>
          <button @click="deleteItem(item.id)">删除</button>
        </td>
      </tr>
    </table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { id: 1, name: '张三', age: 25 },
        { id: 2, name: '李四', age: 30 }
      ],
      form: {
        name: '',
        age: ''
      },
      nextId: 3
    }
  },
  methods: {
    addItem() {
      if (!this.form.name || !this.form.age) return

      this.tableData.push({
        id: this.nextId++,
        name: this.form.name,
        age: Number(this.form.age)
      })

      this.form.name = ''
      this.form.age = ''
    },
    deleteItem(id) {
      this.tableData = this.tableData.filter(item => item.id !== id)
    }
  }
}
</script>

增强功能建议

  1. 添加表单验证,确保输入合法
  2. 使用计算属性处理排序或筛选
  3. 添加确认对话框防止误删
  4. 对于大型数据集考虑虚拟滚动优化性能

vue实现表格添加删除

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

相关文章

vue点击实现排序

vue点击实现排序

实现点击排序的方法 在Vue中实现点击排序功能,可以通过以下几种方式完成: 使用计算属性结合排序方法 定义一个响应式数据存储排序状态,通过计算属性动态返回排序后的数组。点击事件切换排序状态。…

vue实现矩阵

vue实现矩阵

Vue 实现矩阵的方法 在 Vue 中实现矩阵操作可以通过多种方式完成,以下是一些常见的方法: 使用二维数组表示矩阵 矩阵可以用二维数组来表示,每个元素对应矩阵中的一个值。在 Vue 的 data…

eventbus vue实现

eventbus vue实现

EventBus 实现原理 EventBus 是一种发布/订阅模式,用于 Vue 组件间的通信。核心是通过一个中央事件总线管理事件监听和触发。 创建 EventBus 在 Vue 项目中创建一个独…

vue实现缩放

vue实现缩放

Vue 实现缩放的方法 在 Vue 中实现缩放功能可以通过多种方式完成,以下是一些常见的方法: 使用 CSS transform 属性 通过 CSS 的 transform: scale() 属性…

vue实现图库

vue实现图库

Vue 实现图库的基本方法 使用 Vue 实现图库功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用 Vue 和第三方库(如 Vue Gallery) 安装 vue-gallery 或…

vue列表实现

vue列表实现

Vue 列表实现方法 使用 v-for 指令 v-for 是 Vue 中用于渲染列表的核心指令,基于数据源动态生成 DOM 元素。语法格式为 item in items 或 (item, index)…