当前位置:首页 > VUE

vue实现增加修改

2026-02-20 04:49:17VUE

Vue 实现增加和修改功能

数据绑定与表单处理

使用 v-model 实现表单数据的双向绑定,适用于新增和修改场景。例如表单输入框绑定到 formData 对象:

<template>
  <input v-model="formData.name" placeholder="请输入名称">
  <input v-model="formData.age" type="number" placeholder="请输入年龄">
</template>

<script>
export default {
  data() {
    return {
      formData: { name: '', age: null }
    }
  }
}
</script>

新增数据逻辑

通过方法将表单数据添加到列表,并重置表单:

methods: {
  addItem() {
    this.items.push({ ...this.formData });
    this.resetForm();
  },
  resetForm() {
    this.formData = { name: '', age: null };
  }
}

修改数据逻辑

设置编辑状态和当前编辑项索引,填充表单数据:

editItem(index) {
  this.editingIndex = index;
  this.formData = { ...this.items[index] };
},
updateItem() {
  this.items.splice(this.editingIndex, 1, { ...this.formData });
  this.cancelEdit();
}

状态管理

使用 editingIndex 区分新增和编辑模式:

data() {
  return {
    editingIndex: -1,
    items: []
  }
}

动态按钮与条件渲染

根据编辑状态显示不同操作按钮:

<button @click="editingIndex === -1 ? addItem() : updateItem()">
  {{ editingIndex === -1 ? '添加' : '更新' }}
</button>
<button v-if="editingIndex !== -1" @click="cancelEdit">取消</button>

完整组件示例

<template>
  <div>
    <input v-model="formData.name">
    <input v-model="formData.age" type="number">

    <button @click="handleSubmit">
      {{ editingIndex === -1 ? '添加' : '更新' }}
    </button>

    <ul>
      <li v-for="(item, index) in items" :key="index">
        {{ item.name }} - {{ item.age }}
        <button @click="editItem(index)">编辑</button>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      formData: { name: '', age: null },
      items: [],
      editingIndex: -1
    }
  },
  methods: {
    handleSubmit() {
      if (this.editingIndex === -1) {
        this.items.push({ ...this.formData });
      } else {
        this.items.splice(this.editingIndex, 1, { ...this.formData });
      }
      this.resetForm();
    },
    editItem(index) {
      this.formData = { ...this.items[index] };
      this.editingIndex = index;
    },
    resetForm() {
      this.formData = { name: '', age: null };
      this.editingIndex = -1;
    }
  }
}
</script>

vue实现增加修改

标签: vue
分享给朋友:

相关文章

vue实现后退

vue实现后退

Vue 实现后退功能的方法 在 Vue 中实现后退功能通常可以通过以下几种方式完成,具体取决于应用场景和需求。 使用 window.history API 通过原生 JavaScript 的 win…

vue computed实现

vue computed实现

计算属性的基本用法 在Vue中,计算属性通过computed选项定义,用于声明依赖于其他属性的动态值。计算属性基于它们的依赖进行缓存,只有依赖发生变化时才会重新计算。 new Vue({ da…

vue 实现后退

vue 实现后退

实现后退功能的方法 在Vue中实现后退功能通常需要结合浏览器历史记录API或Vue Router的导航方法。以下是几种常见的实现方式: 使用Vue Router的go方法 this.$router…

vue 实现分屏

vue 实现分屏

Vue 实现分屏的方法 使用 CSS Flexbox 或 Grid 布局 通过 CSS Flexbox 或 Grid 布局可以轻松实现分屏效果。在 Vue 组件中定义两个或多个区域,并使用 CSS 控…

vue 实现滑动

vue 实现滑动

Vue 实现滑动效果的方法 在Vue中实现滑动效果可以通过多种方式,以下是几种常见的方法: 使用CSS过渡和动画 通过Vue的<transition>组件结合CSS过渡或动画实现滑动效果…

vue实现pc

vue实现pc

Vue 实现 PC 端应用开发 Vue.js 是一个流行的前端框架,适用于构建 PC 端 Web 应用。以下是关键步骤和最佳实践: 项目初始化 使用 Vue CLI 或 Vite 创建项目:…