vue3+ts实现表格的增删改查(一)

<template>
  <div>
    <table>
      <thead>
        <tr>
          <th>ID</th>
          <th>Name</th>
          <th>Actions</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="(item, index) in items" :key="index">
          <td>{{ item.id }}</td>
          <td>{{ item.name }}</td>
          <td>
            <button @click="editItem(index)">Edit</button>
            <button @click="deleteItem(index)">Delete</button>
          </td>
        </tr>
      </tbody>
    </table>
    <form @submit.prevent="addItem" v-if="showForm">
      <input type="text" v-model="newItem.name" placeholder="Name" required />
      <button type="submit">Add</button>
    </form>
    <form @submit.prevent="updateItem" v-if="showForm && editIndex !== null">
      <input type="text" v-model="newItem.name" placeholder="Name" required />
      <button type="submit">Update</button>
    </form>
    <button @click="showForm = true">Add Item</button>
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue';

interface Item {
  id: number;
  name: string;
}

const items = ref<Item[]>([
  { id: 1, name: 'Item 1' },
  { id: 2, name: 'Item 2' },
  { id: 3, name: 'Item 3' },
]);

const newItem = ref<Item>({ id: 0, name: '' });
const editIndex = ref<number | null>(null);
const showForm = ref(false);

const addItem = () => {
  newItem.value.id = items.value.length + 1;
  items.value.push({ ...new.value });
  newItem.value.name = '';
  showForm.value = false;
};

const editItem = (index: number) => {
  editIndex.value = index;
  newItem = { ...items.value[index] };
  showForm.value = true;
};

const updateItem = () => {
  if (editIndex.value !== null) {
    items.value[editIndex.value] = { ...newItem.value };
    newItem.value.name = '';
    editIndex.value = null;
    showForm.value = false;
  }
};

const deleteItem = (index: number) => {
  items.value.splice(index, 1);
};

</script>
  • items是一个响应式的数组,存储了表格的数据。
  • newItem是一个响应式的对象,用于存储新增或编辑的数据。
  • editIndex是一个响应式的变量,用于记录当前正在编辑的数据的索引。
  • showForm是一个响应式的变量,控制表单的显示与隐藏。

在模板中,使用v-for指令遍历items数组,并使用v-model指令将输入框与newItem.name绑定。通过点击"Add Item"按钮,可以显示添加数据的表单。通过点击"Edit"按钮,可以显示编辑数据的表单,并将编辑的数据填充到输入框中。通过点击"Delete"按钮,可以删除对应的数据。

在脚本部分,定义了addItemeditItemupdateItemdeleteItem等方法来处理表单的提交、编辑、更新和删除操作。

  • addItem方法中,给newItem对象的id属性赋予一个新的值,并将其添加到items数组中。

  • editItem方法中,将正在编辑的数据的索引赋值给editIndex变量,并将对应的数据填充到newItem对象中。

  • updateItem方法中,根据editIndex变量更新items数组中对应的数据。在deleteItem方法中,使用splice方法从items数组中删除对应的数据。

  • 28
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue3和Ant Design中实现表格增删改查功能可以通过以下步骤来完成: 1. 引入Ant Design Vue组件库,可以参考\[1\]中的链接获取相关知识。 2. 创建一个包含表格的组件,并在组件中引入Ant Design Vue的Table组件。 3. 在组件中定义表格的数据源,可以使用一个数组来存储数据。 4. 使用v-for指令将数据源中的每一项渲染为表格的一行。 5. 在表格中添加相应的列,用于展示数据的各个字段。 6. 实现增加功能:通过一个表单收集用户输入的数据,并将数据添加到数据源中。 7. 实现删除功能:为每一行添加一个删除按钮,并通过点击按钮来删除对应的数据项。可以参考\[2\]中的代码示例。 8. 实现修改功能:为每一行添加一个编辑按钮,并通过点击按钮来修改对应的数据项。 9. 实现查询功能:可以通过在表格上方添加一个搜索框,根据用户输入的关键字来过滤数据源中的数据。 以上是一个简单的实现表格增删改查功能的步骤,你可以根据具体需求进行相应的调整和扩展。希望对你有帮助! #### 引用[.reference_title] - *1* *2* *3* [vue3 antd table表格增删改查(三)实现删除的数据的行样式修改【后台管理系统 纯前端rowClassName更改行...](https://blog.csdn.net/XSL_HR/article/details/128437214)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温暖前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值