当前位置:首页 > VUE

vue实现增删改

2026-03-26 18:21:17VUE

Vue 实现增删改查功能

Vue.js 提供了响应式数据绑定和组件化开发能力,可以高效实现增删改查功能。以下是基于 Vue 2.x 或 3.x 的实现方案:

数据准备

初始化一个数组存储数据,并设置表单绑定的对象:

data() {
  return {
    items: [], // 存储列表数据
    form: {    // 表单绑定对象
      id: '',
      name: '',
      description: ''
    },
    isEditing: false // 编辑状态标志
  }
}

新增功能

创建新条目并添加到数组:

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

    const newItem = {
      id: Date.now(),
      ...this.form
    }
    this.items.push(newItem)
    this.resetForm()
  }
}

删除功能

根据ID删除指定条目:

deleteItem(id) {
  this.items = this.items.filter(item => item.id !== id)
}

编辑功能

将选中条目数据加载到表单:

editItem(item) {
  this.isEditing = true
  this.form = { ...item }
}

更新功能

保存修改后的数据:

vue实现增删改

updateItem() {
  const index = this.items.findIndex(item => item.id === this.form.id)
  if (index > -1) {
    this.items.splice(index, 1, { ...this.form })
    this.resetForm()
  }
}

表单重置

resetForm() {
  this.form = { id: '', name: '', description: '' }
  this.isEditing = false
}

模板示例

<template>
  <div>
    <form @submit.prevent="isEditing ? updateItem() : addItem()">
      <input v-model="form.name" placeholder="名称">
      <input v-model="form.description" placeholder="描述">
      <button type="submit">{{ isEditing ? '更新' : '添加' }}</button>
      <button v-if="isEditing" @click="resetForm">取消</button>
    </form>

    <ul>
      <li v-for="item in items" :key="item.id">
        {{ item.name }} - {{ item.description }}
        <button @click="editItem(item)">编辑</button>
        <button @click="deleteItem(item.id)">删除</button>
      </li>
    </ul>
  </div>
</template>

注意事项

  • 使用 v-for 时必须指定唯一的 :key
  • 表单提交使用 @submit.prevent 阻止默认行为
  • 编辑状态切换时需要正确管理表单数据
  • 对于复杂项目建议使用 Vuex 或 Pinia 管理状态

以上实现可根据实际需求进行调整,如添加表单验证、异步请求等功能。

标签: vue
分享给朋友:

相关文章

vue实现简单的弹窗

vue实现简单的弹窗

使用 Vue 实现简单弹窗 组件基础结构 创建一个名为 Modal.vue 的组件文件,包含模板、脚本和样式部分: <template> <div class="modal-o…

vue实现分屏

vue实现分屏

Vue 实现分屏的方法 分屏功能通常用于展示多个独立内容区域,以下是几种常见的实现方式: 使用 CSS Grid 布局 通过 CSS Grid 可以轻松创建分屏布局,在 Vue 组件中直接应用样式:…

vue列表实现

vue列表实现

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

vue实现toast

vue实现toast

Vue 实现 Toast 的方法 使用第三方库(推荐) 对于快速实现 Toast 功能,推荐使用成熟的第三方库如 vue-toastification 或 vant 的 Toast 组件。 安装 v…

vue实现抽奖

vue实现抽奖

Vue 实现抽奖功能 基本抽奖逻辑 创建一个Vue组件,包含奖品列表、抽奖按钮和结果显示区域。使用随机数生成器选择奖品。 <template> <div> <…

vue 绑定实现

vue 绑定实现

Vue 绑定实现 Vue 提供了多种数据绑定的方式,包括文本插值、属性绑定、事件绑定、双向绑定等。以下是常见的绑定实现方法: 文本插值 使用双大括号 {{ }} 进行文本插值,将数据动态渲染到 DO…