当前位置:首页 > VUE

vue实现表格的增

2026-01-20 06:50:30VUE

Vue 实现表格增删功能

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

基础表格结构

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

<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 部分定义数据和操作方法:

<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: '' }
  }
}

使用计算属性(可选)

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

vue实现表格的增

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 中实现查询替换功能,可以通过数据绑定和字符串操作方法结合实现。以下是具体实现方式: 基础实现 <template> <div>…

vue实现详情

vue实现详情

Vue 实现详情页的常见方法 使用动态路由 在 Vue Router 中配置动态路由参数,通过 $route.params 获取详情 ID。示例路由配置: { path: '/detail/:i…

vue 动画 实现

vue 动画 实现

vue 动画实现方法 Vue 提供了多种方式实现动画效果,主要包括过渡动画和动态动画两类。 使用 <transition> 组件实现基础过渡 通过 Vue 内置的 <transit…

vue实现返回

vue实现返回

返回按钮功能实现 在Vue中实现返回功能通常有两种方式:使用浏览器历史记录的history.back()或结合Vue Router进行编程式导航。以下是具体实现方法: 使用浏览器API metho…

vue实现长按

vue实现长按

Vue 实现长按功能的方法 在 Vue 中实现长按功能可以通过原生事件监听或自定义指令完成。以下是几种常见实现方式: 使用原生事件监听 通过 @mousedown 和 @mouseup 或 @tou…

vue 实现视频

vue 实现视频

Vue 实现视频播放功能 使用 Vue 实现视频播放功能可以通过 HTML5 的 <video> 标签或第三方库(如 video.js)来实现。以下是两种常见的方法: 使用 HTML5…