当前位置:首页 > VUE

vue前端实现增删改

2026-02-23 15:15:23VUE

使用 Vue 实现增删改功能

数据绑定与列表渲染

通过 v-model 实现表单数据双向绑定,结合 v-for 渲染列表。示例代码:

<template>
  <div>
    <input v-model="newItem.name" placeholder="名称">
    <button @click="addItem">添加</button>
    <ul>
      <li v-for="(item, index) in items" :key="index">
        {{ item.name }}
        <button @click="editItem(index)">编辑</button>
        <button @click="deleteItem(index)">删除</button>
      </li>
    </ul>
  </div>
</template>

添加功能实现

初始化数据并定义添加方法:

<script>
export default {
  data() {
    return {
      items: [],
      newItem: { name: '' }
    }
  },
  methods: {
    addItem() {
      if (this.newItem.name.trim()) {
        this.items.push({...this.newItem});
        this.newItem.name = '';
      }
    }
  }
}
</script>

删除功能实现

通过数组的 splice 方法删除指定索引项:

methods: {
  deleteItem(index) {
    this.items.splice(index, 1);
  }
}

编辑功能实现

添加编辑状态和更新方法:

<template>
  <div v-if="editingIndex === null">
    <input v-model="newItem.name">
    <button @click="addItem">添加</button>
  </div>
  <div v-else>
    <input v-model="editItemData.name">
    <button @click="updateItem">更新</button>
  </div>
</template>

<script>
methods: {
  editItem(index) {
    this.editingIndex = index;
    this.editItemData = {...this.items[index]};
  },
  updateItem() {
    this.items.splice(this.editingIndex, 1, {...this.editItemData});
    this.cancelEdit();
  },
  cancelEdit() {
    this.editingIndex = null;
    this.editItemData = { name: '' };
  }
}
</script>

状态管理(可选)

对于复杂场景可使用 Vuex:

vue前端实现增删改

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

注意事项

  1. 始终为 v-for 设置唯一的 :key
  2. 复杂表单建议使用 Vue.set 确保响应式更新
  3. 大量数据操作时考虑使用计算属性优化性能

标签: vue
分享给朋友:

相关文章

vue实现单点

vue实现单点

Vue 实现单点登录(SSO)方案 单点登录(SSO)允许用户在多个相关但独立的系统中使用同一组凭证登录。以下是基于 Vue 的实现方案: 基于 OAuth2/OpenID Connect 的实现…

vue实现详情

vue实现详情

Vue 实现详情页的常见方法 使用动态路由 在 Vue Router 中配置动态路由参数,通过 $route.params 获取详情 ID。示例路由配置: { path: '/detail/:i…

vue实现表白

vue实现表白

Vue 实现表白页面 使用 Vue 可以快速创建一个动态、交互式的表白页面。以下是一个简单的实现方案: 基础结构 创建一个 Vue 项目或单文件组件,包含以下核心部分: <template&…

vue实现list

vue实现list

Vue 实现列表渲染 在 Vue 中,可以使用 v-for 指令来渲染列表。v-for 指令基于一个数组或对象来渲染一个列表,可以遍历数组或对象的属性。 基本列表渲染 <template>…

vue实现tree

vue实现tree

Vue 实现 Tree 组件 使用 Vue 实现 Tree 组件可以通过递归组件的方式来实现层级结构展示。以下是一个完整的实现方法: 基础递归组件实现 创建 Tree 组件文件 Tree.vue,使…

vue cli 实现

vue cli 实现

Vue CLI 实现步骤 安装 Vue CLI 确保 Node.js 版本在 8.9 或以上。通过 npm 全局安装 Vue CLI: npm install -g @vue/cli 创建新项目 使…