当前位置:首页 > VUE

vue实现表格的增

2026-02-20 22:53:23VUE

Vue 实现表格的增删改查

初始化表格数据

在 Vue 的 data 中定义表格数据和表单数据模型:

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

表格渲染

使用 v-for 指令渲染表格:

<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>姓名</th>
      <th>年龄</th>
      <th>操作</th>
    </tr>
  </thead>
  <tbody>
    <tr v-for="item in tableData" :key="item.id">
      <td>{{ item.id }}</td>
      <td>{{ item.name }}</td>
      <td>{{ item.age }}</td>
      <td>
        <button @click="editItem(item)">编辑</button>
        <button @click="deleteItem(item.id)">删除</button>
      </td>
    </tr>
  </tbody>
</table>

添加数据

创建表单并实现添加功能:

<form @submit.prevent="submitForm">
  <input v-model="form.name" placeholder="姓名">
  <input v-model="form.age" placeholder="年龄" type="number">
  <button type="submit">{{ isEdit ? '更新' : '添加' }}</button>
</form>
methods: {
  submitForm() {
    if (this.isEdit) {
      const index = this.tableData.findIndex(item => item.id === this.form.id)
      this.tableData.splice(index, 1, { ...this.form })
    } else {
      this.form.id = Date.now()
      this.tableData.push({ ...this.form })
    }
    this.resetForm()
  },
  resetForm() {
    this.form = { id: '', name: '', age: '' }
    this.isEdit = false
  }
}

编辑数据

实现编辑功能:

methods: {
  editItem(item) {
    this.form = { ...item }
    this.isEdit = true
  }
}

删除数据

实现删除功能:

methods: {
  deleteItem(id) {
    this.tableData = this.tableData.filter(item => item.id !== id)
  }
}

使用 Element UI 实现表格操作

如果使用 Element UI 组件库,可以简化实现:

vue实现表格的增

安装 Element UI

npm install element-ui

引入 Element UI

import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)

使用 el-table 组件

<el-table :data="tableData" style="width: 100%">
  <el-table-column prop="id" label="ID"></el-table-column>
  <el-table-column prop="name" label="姓名"></el-table-column>
  <el-table-column prop="age" label="年龄"></el-table-column>
  <el-table-column label="操作">
    <template slot-scope="scope">
      <el-button size="mini" @click="editItem(scope.row)">编辑</el-button>
      <el-button size="mini" type="danger" @click="deleteItem(scope.row.id)">删除</el-button>
    </template>
  </el-table-column>
</el-table>

<el-dialog :title="isEdit ? '编辑数据' : '添加数据'" :visible.sync="dialogVisible">
  <el-form :model="form">
    <el-form-item label="姓名">
      <el-input v-model="form.name"></el-input>
    </el-form-item>
    <el-form-item label="年龄">
      <el-input v-model="form.age" type="number"></el-input>
    </el-form-item>
  </el-form>
  <span slot="footer">
    <el-button @click="dialogVisible = false">取消</el-button>
    <el-button type="primary" @click="submitForm">确定</el-button>
  </span>
</el-dialog>

添加对话框控制

data() {
  return {
    dialogVisible: false,
    // 其他数据...
  }
},
methods: {
  editItem(item) {
    this.form = { ...item }
    this.isEdit = true
    this.dialogVisible = true
  },
  addItem() {
    this.resetForm()
    this.dialogVisible = true
  }
}

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

相关文章

vue实现图集

vue实现图集

Vue 实现图集的方法 在 Vue 中实现图集功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用第三方库(如 vue-image-lightbox) 安装 vue-image-ligh…

实现 vue 框架

实现 vue 框架

Vue 框架的基本实现 Vue 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现 Vue 框架的基本步骤和核心概念。 核心概念 响应式数据绑定 Vue 的核心特性之一是响应式数…

vue实现标题

vue实现标题

Vue 实现标题的方法 在Vue中实现标题可以通过多种方式,以下是几种常见的方法: 方法一:使用模板语法 在Vue组件的模板中直接使用HTML的<h1>到<h6>标签来定义…

vue实现网站

vue实现网站

Vue 实现网站的基本步骤 Vue.js 是一个渐进式 JavaScript 框架,适合构建现代化的单页应用(SPA)或动态网站。以下是使用 Vue 实现网站的基本方法。 初始化 Vue 项目 使用…

vue键盘实现

vue键盘实现

监听键盘事件 在Vue中监听键盘事件可以通过v-on指令或@缩写实现。常见的键盘事件包括keydown、keyup和keypress。例如监听回车键事件: <template> &l…

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…