当前位置:首页 > VUE

vue增删改查简单实现

2026-01-11 20:31:13VUE

Vue 增删改查简单实现

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

vue增删改查简单实现

初始化项目

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

vue增删改查简单实现

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 的用户。

样式优化

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

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中实现多级组件通常涉及父子组件嵌套,通过props向下传递数据,通过$emit向上传递事件。多级组件的核心是递归或动态组件渲染。 <!-- 父组件 Parent…

vue实现选择季度

vue实现选择季度

Vue 实现选择季度的几种方法 使用下拉选择框(Select) 在 Vue 中可以通过 v-model 绑定一个下拉选择框来实现季度选择。数据可以预先定义为一个包含季度选项的数组。 <tem…

vue点击实现排序

vue点击实现排序

实现点击排序的方法 在Vue中实现点击排序功能,可以通过以下几种方式完成: 使用计算属性结合排序方法 定义一个响应式数据存储排序状态,通过计算属性动态返回排序后的数组。点击事件切换排序状态。…

vue实现好评弹框

vue实现好评弹框

Vue 实现好评弹框的方法 使用 Vue 实现好评弹框可以通过组件化方式完成,结合动态数据绑定和事件处理。以下是具体实现步骤: 1. 创建弹框组件 新建一个 RatingDialog.vue 组件…

vue实现列表显示

vue实现列表显示

Vue 实现列表显示的方法 在 Vue 中实现列表显示通常使用 v-for 指令,结合数组或对象数据渲染动态列表。以下是几种常见的实现方式。 基本列表渲染 通过 v-for 指令遍历数组,动态生成…

vue实现收起展开面板

vue实现收起展开面板

实现收起展开面板的方法 在Vue中实现收起展开面板功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-show或v-if控制显示隐藏 利用Vue的指令可以轻松实现面板的展开和收起:…