当前位置:首页 > 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: '' }
  }
}

使用计算属性(可选)

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

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 中实现视频开场动画可以通过结合 HTML5 的 <video> 标签和 Vue 的过渡效果或生命周期钩子来完成。以下是具体实现方法: 安装依…

vue实现多层评论回复

vue实现多层评论回复

Vue 实现多层评论回复 数据结构设计 多层评论通常采用嵌套结构,每个评论对象包含子评论数组。示例数据结构如下: comments: [ { id: 1, content: '…

vue穿梭框组件实现

vue穿梭框组件实现

实现基础穿梭框组件 在Vue中实现穿梭框组件,可以使用<el-transfer>(Element UI)或手动实现。以下是手动实现的核心逻辑: <template> &…

在vue实现学生表格

在vue实现学生表格

创建 Vue 项目 使用 Vue CLI 或 Vite 初始化项目: npm init vue@latest student-table cd student-table npm instal…

vue实现store

vue实现store

Vue 实现 Store 在 Vue 中,可以通过 Vuex 或 Pinia 实现全局状态管理(Store)。以下是两种主流方案的实现方法。 使用 Vuex 实现 Store Vuex 是 Vue…

vue 实现toast

vue 实现toast

vue 实现 toast 的方法 在 Vue 中实现 Toast 提示功能可以通过多种方式,以下是几种常见的实现方法: 使用第三方库 Vue 生态中有许多成熟的 Toast 库,例如 vue-toa…