当前位置:首页 > VUE

vue实现表单添加删除

2026-02-24 05:19:47VUE

Vue 表单添加与删除实现

数据绑定与表单结构

使用v-model绑定表单数据,确保双向数据流。表单结构需包含输入字段和操作按钮。

<template>
  <div>
    <form @submit.prevent="addItem">
      <input v-model="newItem.name" placeholder="名称">
      <input v-model="newItem.age" placeholder="年龄" type="number">
      <button type="submit">添加</button>
    </form>
  </div>
</template>

数据初始化

datasetup中初始化表单数据和列表数组。

data() {
  return {
    newItem: { name: '', age: null },
    items: []
  }
}

添加功能实现

通过数组方法将新数据添加到列表中,并重置表单。

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

删除功能实现

使用splicefilter根据索引或ID删除指定项。

<ul>
  <li v-for="(item, index) in items" :key="index">
    {{ item.name }} - {{ item.age }}
    <button @click="removeItem(index)">删除</button>
  </li>
</ul>
methods: {
  removeItem(index) {
    this.items.splice(index, 1);
  }
}

使用计算属性验证

添加表单验证逻辑,确保数据有效性。

computed: {
  isFormValid() {
    return this.newItem.name.trim() && this.newItem.age > 0;
  }
}

完整组件示例

整合所有功能的完整组件代码示例。

<template>
  <div>
    <form @submit.prevent="addItem">
      <input v-model="newItem.name" placeholder="名称">
      <input v-model="newItem.age" placeholder="年龄" type="number">
      <button type="submit" :disabled="!isFormValid">添加</button>
    </form>

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

<script>
export default {
  data() {
    return {
      newItem: { name: '', age: null },
      items: []
    }
  },
  computed: {
    isFormValid() {
      return this.newItem.name.trim() && this.newItem.age > 0;
    }
  },
  methods: {
    addItem() {
      this.items.push({...this.newItem});
      this.newItem = { name: '', age: null };
    },
    removeItem(index) {
      this.items.splice(index, 1);
    }
  }
}
</script>

vue实现表单添加删除

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

相关文章

vue前端实现打印功能

vue前端实现打印功能

使用Vue实现前端打印功能 在Vue项目中实现打印功能可以通过多种方式完成,以下是几种常见的方法: 使用window.print()方法 这是最简单的打印方式,直接调用浏览器的打印功能。 me…

vue实现双折线图

vue实现双折线图

实现双折线图的步骤 安装必要的依赖库(如 ECharts 或 Chart.js),这里以 ECharts 为例: npm install echarts --save 在 Vue 组件中引入 ECh…

vue实现画圆弧并着色

vue实现画圆弧并着色

在 Vue 中实现画圆弧并着色 使用 Canvas API 绘制圆弧 在 Vue 组件的 mounted 钩子中,通过 Canvas API 绘制圆弧。创建一个 canvas 元素并获取其上下文:…

vue实现tablegrid

vue实现tablegrid

Vue 实现 TableGrid 的方法 使用 Element UI 的 Table 组件 Element UI 提供了强大的 Table 组件,可以快速实现表格布局。安装 Element UI 后,…

vue实现switch

vue实现switch

Vue 实现 Switch 开关组件 在 Vue 中实现 Switch 开关组件可以通过自定义组件或使用现有 UI 库完成。以下是几种常见实现方式: 自定义 Switch 组件 创建一个基础 Sw…

vue实现水印

vue实现水印

Vue 实现水印的方法 使用 CSS 背景图 通过 CSS 的 background-image 和 background-repeat 属性实现水印效果。创建一个包含水印文本的 Canvas,将其转…