以下是一个使用Vue 3.0编写的增删改查的示例:

<template>
  <div>
    <h2>CRUD 示例</h2>
  
    <!-- 创建表单 -->
    <form @submit.prevent="createUser">
      <h3>创建用户</h3>
      <input type="text" v-model="newUser.name" placeholder="姓名" required>
      <input type="email" v-model="newUser.email" placeholder="邮箱" required>
      <button type="submit">创建</button>
    </form>
  
    <!-- 用户列表 -->
    <h3>用户列表</h3>
    <ul>
      <li v-for="user in users" :key="user.id">
        {{ user.name }} - {{ user.email }}
        <button @click="editUser(user)">编辑</button>
        <button @click="deleteUser(user)">删除</button>
      </li>
    </ul>
  
    <!-- 编辑表单 -->
    <form v-if="editingUser" @submit.prevent="updateUser">
      <h3>编辑用户</h3>
      <input type="text" v-model="editingUser.name" required>
      <input type="email" v-model="editingUser.email" required>
      <button type="submit">保存</button>
      <button @click="cancelEdit">取消</button>
    </form>
  </div>
</template>

<script>
import { ref } from 'vue';

export default {
  data() {
    return {
      users: [
        { id: 1, name: 'John Doe', email: 'john@example.com' },
        { id: 2, name: 'Jane Smith', email: 'jane@example.com' },
      ],
      newUser: {
        name: '',
        email: '',
      },
      editingUser: null,
    };
  },
  methods: {
    createUser() {
      if (this.newUser.name && this.newUser.email) {
        this.users.push({
          id: Math.random(),
          name: this.newUser.name,
          email: this.newUser.email,
        });
        this.newUser.name = '';
        this.newUser.email = '';
      }
    },
    editUser(user) {
      this.editingUser = { ...user };
    },
    updateUser() {
      if (this.editingUser.name && this.editingUser.email) {
        const index = this.users.findIndex(user => user.id === this.editingUser.id);
        if (index !== -1) {
          this.users.splice(index, 1, { ...this.editingUser });
          this.editingUser = null;
        }
      }
    },
    cancelEdit() {
      this.editingUser = null;
    },
    deleteUser(user) {
      const index = this.users.findIndex(u => u.id === user.id);
      if (index !== -1) {
        this.users.splice(index, 1);
      }
    },
  },
};
</script>

在这个示例中,我们使用了ref函数来定义响应式数据。users数组存储了用户列表,newUser对象用于创建新用户,editingUser对象用于编辑用户。

createUser方法用于创建新用户,将新用户添加到users数组中。

editUser方法用于编辑用户,将要编辑的用户赋值给editingUser,并显示编辑表单。

updateUser方法用于保存编辑后的用户信息,通过找到要编辑的用户在users数组中的索引,将编辑后的用户信息替换原来的用户信息。

cancelEdit方法用于取消编辑,将editingUser设置为null,隐藏编辑表单。

deleteUser方法用于删除用户,通过找到要删除的用户在users数组中的索引,将其从数组中移除。

在模板中,我们使用v-for指令遍历users数组,显示用户列表。对于每个用户,我们显示其姓名和邮箱,并提供编辑和删除按钮。

通过在表单和按钮上绑定事件监听器,我们可以调用相应的方法来执行增删改查操作。

此示例演示了如何使用Vue 3.0编写一个简单的增删改查功能。你可以根据自己的需求进行扩展和修改

vue30写一个增删改查

原文地址: https://www.cveoy.top/t/topic/hXjF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录