当前位置:首页 > VUE

vue如何实现增删

2026-03-07 18:35:45VUE

Vue 实现增加功能

通过 v-model 绑定输入框数据,结合数组的 push 方法实现新增。示例代码:

vue如何实现增删

<template>
  <input v-model="newItem" placeholder="输入新增内容">
  <button @click="addItem">新增</button>
  <ul>
    <li v-for="(item, index) in items" :key="index">{{ item }}</li>
  </ul>
</template>

<script>
export default {
  data() {
    return {
      newItem: '',
      items: ['默认项1', '默认项2']
    }
  },
  methods: {
    addItem() {
      if (this.newItem.trim()) {
        this.items.push(this.newItem.trim())
        this.newItem = ''
      }
    }
  }
}
</script>

Vue 实现删除功能

使用数组的 splice 方法或 filter 方法移除指定项。示例代码:

vue如何实现增删

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

<script>
export default {
  data() {
    return {
      items: ['项目A', '项目B', '项目C']
    }
  },
  methods: {
    deleteItem(index) {
      this.items.splice(index, 1)
    }
  }
}
</script>

结合增删的完整示例

<template>
  <div>
    <input v-model="newTodo" @keyup.enter="addTodo">
    <button @click="addTodo">添加</button>
    <ul>
      <li v-for="(todo, index) in todos" :key="index">
        {{ todo }}
        <button @click="removeTodo(index)">×</button>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      newTodo: '',
      todos: ['学习Vue', '写代码']
    }
  },
  methods: {
    addTodo() {
      if (this.newTodo.trim()) {
        this.todos.push(this.newTodo.trim())
        this.newTodo = ''
      }
    },
    removeTodo(index) {
      this.todos.splice(index, 1)
    }
  }
}
</script>

使用 Vuex 管理状态

对于大型应用建议使用状态管理:

// store.js
const store = new Vuex.Store({
  state: {
    items: []
  },
  mutations: {
    ADD_ITEM(state, payload) {
      state.items.push(payload)
    },
    DELETE_ITEM(state, index) {
      state.items.splice(index, 1)
    }
  }
})

// 组件内调用
methods: {
  addItem() {
    this.$store.commit('ADD_ITEM', this.newItem)
  },
  deleteItem(index) {
    this.$store.commit('DELETE_ITEM', index)
  }
}

关键注意事项

  • 列表渲染必须设置 :key 属性
  • 删除操作建议使用唯一ID而非索引作为标识
  • 对于复杂数据结构,建议使用深拷贝处理数据变更
  • 表单输入需添加非空校验和trim处理

标签: 如何实现vue
分享给朋友:

相关文章

vue状态管理怎么实现

vue状态管理怎么实现

Vue 状态管理实现方法 使用 Vuex(官方推荐) Vuex 是 Vue 的官方状态管理库,适合中大型应用。 安装 Vuex: npm install vuex --save 创建 Store 示…

vue穿梭框组件实现

vue穿梭框组件实现

实现基础穿梭框组件 在Vue中实现穿梭框组件,可以使用<el-transfer>(Element UI)或手动实现。以下是手动实现的核心逻辑: <template> &l…

vue实现排序

vue实现排序

Vue 实现排序的方法 在 Vue 中实现排序可以通过多种方式完成,以下是一些常见的方法: 使用计算属性排序数组 计算属性非常适合对数据进行排序,因为它会在依赖的数据变化时自动更新。以下是一个示例:…

vue实现弹幕

vue实现弹幕

Vue 实现弹幕功能 弹幕功能通常包括动态生成、滚动显示、颜色和速度随机化等特性。以下是基于 Vue 3 的实现方法。 核心思路 使用 CSS 动画控制弹幕从右向左滚动。 动态生成弹幕数据,随机设置…

vue实现选人

vue实现选人

实现选人功能的基本思路 在Vue中实现选人功能通常涉及以下核心环节:数据绑定、用户交互处理、状态管理以及界面渲染。以下是具体实现方法: 数据准备与组件结构 创建包含人员信息的数组,通常从API获取或…

vue实现展开

vue实现展开

展开功能的实现方法 在Vue中实现展开功能可以通过多种方式完成,常见的有使用v-show、v-if指令,结合CSS过渡动画或第三方组件库。 使用v-show控制显示隐藏 通过v-show指令可以简单…