当前位置:首页 > VUE

vue实现添加删除

2026-03-08 05:00:52VUE

Vue 实现添加和删除功能

在 Vue 中实现添加和删除功能通常涉及数据绑定、事件处理和列表渲染。以下是一个完整的示例,展示如何通过 Vue 实现动态添加和删除列表项。

初始化 Vue 实例

创建一个 Vue 实例,并定义数据和方法。数据包括一个数组 items 和一个输入框绑定的变量 newItem

new Vue({
  el: '#app',
  data: {
    items: ['Item 1', 'Item 2', 'Item 3'],
    newItem: ''
  },
  methods: {
    addItem() {
      if (this.newItem.trim() !== '') {
        this.items.push(this.newItem.trim());
        this.newItem = '';
      }
    },
    removeItem(index) {
      this.items.splice(index, 1);
    }
  }
});

模板部分

在 HTML 中,使用 v-for 渲染列表,并通过 v-model 绑定输入框的值。为按钮绑定 addItemremoveItem 方法。

vue实现添加删除

<div id="app">
  <input v-model="newItem" placeholder="Add new item">
  <button @click="addItem">Add</button>
  <ul>
    <li v-for="(item, index) in items" :key="index">
      {{ item }}
      <button @click="removeItem(index)">Delete</button>
    </li>
  </ul>
</div>

功能说明

  • 添加功能:通过 v-model 绑定输入框的值到 newItem,点击“Add”按钮时调用 addItem 方法,将输入的值添加到 items 数组中。
  • 删除功能:每个列表项旁有一个“Delete”按钮,点击时调用 removeItem 方法并传入当前项的索引,从 items 数组中移除对应项。

完整示例代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Vue Add/Remove Items</title>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
  <div id="app">
    <input v-model="newItem" placeholder="Add new item">
    <button @click="addItem">Add</button>
    <ul>
      <li v-for="(item, index) in items" :key="index">
        {{ item }}
        <button @click="removeItem(index)">Delete</button>
      </li>
    </ul>
  </div>

  <script>
    new Vue({
      el: '#app',
      data: {
        items: ['Item 1', 'Item 2', 'Item 3'],
        newItem: ''
      },
      methods: {
        addItem() {
          if (this.newItem.trim() !== '') {
            this.items.push(this.newItem.trim());
            this.newItem = '';
          }
        },
        removeItem(index) {
          this.items.splice(index, 1);
        }
      }
    });
  </script>
</body>
</html>

注意事项

  • 唯一键值:在实际项目中,建议为 v-for 使用唯一的键值(如 id),而非索引。
  • 输入验证:添加输入验证以确保空值不会被添加到列表中。
  • 组件化:对于复杂场景,可以将列表项封装为子组件,提升代码可维护性。

标签: vue
分享给朋友:

相关文章

vue实现骰子

vue实现骰子

Vue 实现骰子功能 创建 Vue 组件 在 Vue 项目中创建一个骰子组件,例如 Dice.vue。该组件包含骰子的外观和逻辑。 <template> <div class=…

vue 实现全屏

vue 实现全屏

Vue 实现全屏功能 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 完成。以下是一个完整的实现方案: 安装依赖(可选) 如果需要跨浏览器兼容性更好,可以安装…

vue filter 实现

vue filter 实现

在 Vue.js 中,过滤器(Filter)是一种用于文本格式化的功能,可以在模板中直接使用。以下是实现过滤器的详细方法: 全局过滤器注册 通过 Vue.filter 方法注册全局过滤器,可在所有组…

vue业务实现

vue业务实现

Vue 业务实现方法 组件化开发 Vue 的核心思想是组件化,将页面拆分为独立可复用的组件。每个组件包含模板、脚本和样式,通过 props 和 events 实现父子通信。大型项目可使用 Vuex 或…

vue实现复制文本

vue实现复制文本

实现复制文本的方法 在Vue中实现复制文本功能可以通过以下几种方式实现,每种方法适用于不同的场景。 使用原生JavaScript的execCommand方法 虽然execCommand方法已逐渐被弃…

vue实现悬浮字体

vue实现悬浮字体

实现悬浮字体的方法 在Vue中实现悬浮字体效果,可以通过CSS的position: fixed或position: sticky属性结合Vue的响应式特性来完成。以下是几种常见的实现方式: 使用CS…