当前位置:首页 > VUE

vue增删改查简单实现

2026-01-11 20:31:13VUE

Vue 增删改查简单实现

以下是一个基于 Vue 3 的简单增删改查(CRUD)实现示例,使用 Vue 的 Composition API 和响应式数据管理。

初始化项目

确保已安装 Vue 3 环境。可以通过以下命令创建一个新项目:

npm init vue@latest vue-crud-demo
cd vue-crud-demo
npm install

核心代码实现

src/App.vue 中编写以下代码:

<template>
  <div>
    <h3>用户列表</h3>
    <table>
      <thead>
        <tr>
          <th>ID</th>
          <th>姓名</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="user in users" :key="user.id">
          <td>{{ user.id }}</td>
          <td>{{ user.name }}</td>
          <td>
            <button @click="editUser(user)">编辑</button>
            <button @click="deleteUser(user.id)">删除</button>
          </td>
        </tr>
      </tbody>
    </table>

    <h3>{{ editing ? '编辑用户' : '添加用户' }}</h3>
    <input v-model="currentUser.name" placeholder="请输入姓名" />
    <button @click="saveUser">{{ editing ? '更新' : '添加' }}</button>
  </div>
</template>

<script setup>
import { ref, reactive } from 'vue';

const users = reactive([
  { id: 1, name: '张三' },
  { id: 2, name: '李四' }
]);

const currentUser = reactive({
  id: null,
  name: ''
});

const editing = ref(false);

const saveUser = () => {
  if (editing.value) {
    const index = users.findIndex(u => u.id === currentUser.id);
    if (index !== -1) {
      users[index].name = currentUser.name;
    }
  } else {
    const newId = users.length > 0 ? Math.max(...users.map(u => u.id)) + 1 : 1;
    users.push({ id: newId, name: currentUser.name });
  }
  resetForm();
};

const editUser = (user) => {
  currentUser.id = user.id;
  currentUser.name = user.name;
  editing.value = true;
};

const deleteUser = (id) => {
  const index = users.findIndex(u => u.id === id);
  if (index !== -1) {
    users.splice(index, 1);
  }
};

const resetForm = () => {
  currentUser.id = null;
  currentUser.name = '';
  editing.value = false;
};
</script>

关键点说明

  • 数据管理:使用 reactive 创建响应式对象 userscurrentUserref 管理编辑状态。
  • 添加功能:通过 saveUser 方法判断当前是编辑还是添加,动态生成新 ID 并更新数组。
  • 编辑功能editUser 方法将选中用户数据填充到表单,标记为编辑状态。
  • 删除功能:通过 splice 从数组中移除指定 ID 的用户。

样式优化

可添加基础样式提升交互体验:

vue增删改查简单实现

table {
  border-collapse: collapse;
  width: 100%;
}
th, td {
  border: 1px solid #ddd;
  padding: 8px;
}
button {
  margin: 0 5px;
  cursor: pointer;
}

扩展建议

  • 添加表单验证(如空值检查)。
  • 使用组件拆分逻辑(如单独的表单组件、列表组件)。
  • 集成后端 API(通过 axios 发送请求)。
  • 加入状态管理(如 Pinia)处理复杂数据流。

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

相关文章

vue调用接口实现退出

vue调用接口实现退出

实现Vue退出功能的步骤 在Vue中调用接口实现退出功能通常需要与后端API交互,以下是实现方法: 前端实现 创建退出方法,调用后端API接口: methods: { logout() {…

js实现vue

js实现vue

Vue.js 的基本实现方法 在 JavaScript 中实现 Vue.js 的功能,可以通过直接引入 Vue 库或使用现代构建工具(如 Vite 或 Webpack)。以下是几种常见的实现方式:…

vue实现token

vue实现token

Vue 中实现 Token 认证的方法 在 Vue 中实现 Token 认证通常涉及前端与后端的交互,包括 Token 的获取、存储、发送和刷新等操作。以下是具体实现步骤: 获取 Token 用户登…

vue实现异步

vue实现异步

Vue 实现异步操作的常见方法 Vue 提供了多种方式来处理异步操作,包括数据获取、事件处理等场景。 使用 async/await 在 Vue 方法中可以直接使用 async/await 语法处理异…

vue实现menu

vue实现menu

Vue 实现 Menu 的方法 使用 Element UI 的 Menu 组件 Element UI 提供了现成的 Menu 组件,适合快速实现导航菜单。安装 Element UI 后,可以直接使用…

vue实现导入

vue实现导入

Vue 实现文件导入功能 使用 <input type="file"> 元素 在 Vue 模板中添加一个文件输入元素,绑定 change 事件处理函数。 <template>…