当前位置:首页 > VUE

vue实现表格的增

2026-01-20 06:50:30VUE

Vue 实现表格增删功能

在 Vue 中实现表格的增删功能需要结合数据绑定和事件处理。以下是具体实现方法:

基础表格结构

使用 v-for 指令渲染表格数据,并通过 v-model 实现双向绑定:

vue实现表格的增

<template>
  <div>
    <table>
      <thead>
        <tr>
          <th>姓名</th>
          <th>年龄</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="(item, index) in tableData" :key="index">
          <td>{{ item.name }}</td>
          <td>{{ item.age }}</td>
          <td>
            <button @click="deleteRow(index)">删除</button>
          </td>
        </tr>
      </tbody>
    </table>
    <div>
      <input v-model="newItem.name" placeholder="姓名">
      <input v-model="newItem.age" placeholder="年龄">
      <button @click="addRow">添加</button>
    </div>
  </div>
</template>

数据与逻辑处理

script 部分定义数据和操作方法:

vue实现表格的增

<script>
export default {
  data() {
    return {
      tableData: [
        { name: '张三', age: 20 },
        { name: '李四', age: 25 }
      ],
      newItem: { name: '', age: '' }
    }
  },
  methods: {
    addRow() {
      if (this.newItem.name && this.newItem.age) {
        this.tableData.push({...this.newItem})
        this.newItem = { name: '', age: '' }
      }
    },
    deleteRow(index) {
      this.tableData.splice(index, 1)
    }
  }
}
</script>

表单验证(可选)

添加简单的表单验证确保输入有效性:

methods: {
  addRow() {
    if (!this.newItem.name.trim()) {
      alert('请输入姓名')
      return
    }
    if (isNaN(this.newItem.age) || this.newItem.age <= 0) {
      alert('年龄必须为正数')
      return
    }
    this.tableData.push({
      name: this.newItem.name,
      age: Number(this.newItem.age)
    })
    this.newItem = { name: '', age: '' }
  }
}

使用计算属性(可选)

如果需要过滤或处理表格数据,可以使用计算属性:

computed: {
  filteredData() {
    return this.tableData.filter(item => item.age > 18)
  }
}

注意事项

  1. v-for 设置唯一的 key 属性以提高性能
  2. 对于大型数据集考虑使用虚拟滚动优化性能
  3. 复杂场景可结合 Vuex 进行状态管理
  4. 实际项目中建议使用第三方表格组件如 Element UI 的 el-table

通过以上方式即可在 Vue 中实现基本的表格增删功能。根据项目需求,可以进一步扩展编辑、排序、分页等功能。

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

相关文章

vue实现多级弹窗

vue实现多级弹窗

Vue 多级弹窗实现方法 方法一:使用动态组件与递归组件 在 Vue 中可以通过动态组件配合递归组件实现多级弹窗。定义一个基础弹窗组件,通过递归调用自身实现层级嵌套。 基础弹窗组件模板示例:…

vue伪函数实现

vue伪函数实现

Vue 伪函数实现方法 伪函数(Mock Function)在 Vue 中常用于测试或模拟某些逻辑,以下是几种常见的实现方式: 使用 Jest 的 jest.fn() 在单元测试中,可以通过 Je…

vue实现多级表头

vue实现多级表头

Vue 实现多级表头的方法 使用 el-table 组件 Element UI 的 el-table 组件支持多级表头的实现,通过嵌套 el-table-column 即可完成。 <el-ta…

vue实现裁剪头像

vue实现裁剪头像

Vue 实现头像裁剪功能 实现头像裁剪功能通常需要结合第三方库如 cropperjs 或 vue-cropper。以下是两种常见实现方式: 使用 vue-cropper 库 安装依赖: n…

vue实现收起展开面板

vue实现收起展开面板

实现收起展开面板的方法 在Vue中实现收起展开面板功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-show或v-if控制显示隐藏 利用Vue的指令可以轻松实现面板的展开和收起:…

vue异步组建实现原理

vue异步组建实现原理

Vue 异步组件实现原理 Vue 的异步组件允许将组件按需加载,通常用于代码分割或延迟加载非关键组件。其核心原理基于 Promise 和动态导入。 基本实现方式 通过 defineAsyncCom…