vue3 antd项目实战——table表格(一文带你快速实现后台管理系统最常用的table表格)

知识调用

功能实现可能要用到的知识:
vue3+ant design vue+ts实战【ant-design-vue组件库引入】
vue3项目实战中的接口调用方法(一)async/await用法
vue3项目实战中的接口调用(获取表格数据时可能用到)

核心干货

文章中功能的实现还是沿用 ant design vue 组件库

在这里插入图片描述

首先打开antd官网,找到table表格一栏。👏👏👏
里面会有详细的介绍,教你如何使用table组件。👏👏👏

何时使用

  • 当有大量结构化的数据需要展现时。
  • 当需要对数据进行排序、搜搜、分页、自定义才做等复杂行为时。

如何引用
指定表格的数据源(实质为一个数组)dataSource

代码示例:(根据需求修改即可)
template部分:

<template>
  <a-table :dataSource="dataSource" :columns="columns" />
</template>

script部分:

<script setup lang="ts">
     // 存储数据的数组
     const dataSource = [
          {
            key: '1',
            name: '胡彦斌',
            age: 32,
            address: '西湖区湖底公园1号',
          },
          {
            key: '2',
            name: '胡彦祖',
            age: 42,
            address: '西湖区湖底公园1号',
          },
        ],
     // 行目录
     const columns = [
          {
            title: '姓名',
            dataIndex: 'name',
            key: 'name',
          },
          {
            title: '年龄',
            dataIndex: 'age',
            key: 'age',
          },
          {
            title: '住址',
            dataIndex: 'address',
            key: 'address',
          },
        ]
</script>

实现效果: 👇👇👇

姓名年龄住址
胡彦斌32西湖区湖底公园1号
胡彦祖42西湖区湖底公园1号

但更多时候,数据的来源不是由后台来创建的,数据是灵活的,来源于后端的数据库,所以表格内的数据一般采用请求后端接口的方法,获取数据存放到表格中。
下面将给出一些参考示例。👇👇👇
template部分代码:

<a-table :data-source="data.list" :columns="columns" style="width:100%"></a-table>

请求接口request部分:

接口: https://www.fastmock.site//mock/323354e56ef21147c3f550e18435baa1/api/getList

代码图片:(含注释)
在这里插入图片描述
源码:(含注释,根据需求修改)

import request from "../utils/request";

// 定义并导出请求接口函数
export const getList = (data:any) => {
    return request({ // 返回request请求
        url: '/mock/323354e56ef21147c3f550e18435baa1/api/getList ', // 请求接口的地址
        data:data,
    })
}

请求接口部分:
代码截图:(含注释)
在这里插入图片描述
源码:

const initGetList  = async () => { 
    const {data:res} = await getList(data) 
    // console.log(res) 
    data.list = res.data 
}
initGetList()

表格横向栏内容部分:(根据需求适当修改)

代码截图:
在这里插入图片描述
源码:

import { reactive } from "vue";

export let columns = reactive([
    {
        title:'用户ID',
        dataIndex:'userId',
        key:'userId',
        width:75,
        
    },
    {
        title:'ID',
        dataIndex:'id',
        key:'id'
    },
    {
        title:'标题',
        dataIndex:'title',
        key:'title'
    },
    {
        title:'详情',
        dataIndex:'body',
        key:'body'
    },
])

实现效果截图:
在这里插入图片描述

补充说明:

  • 接口改变时,根据请求的要求做出适当更改
  • 数据表格目录增多时,做出添加即可
  • 以上便是关于vue3使用 ant design vue 组件库 实现的最基础的table表格
  • 当然table的水还是很深的,涉及到很多自定义功能.
  • 最常见的当然是插槽,后续文章会对插槽展开深入研究。

下期预告

关键字模糊查找(纯前端)

关键字模糊查找(前后交互)

今天的故事到这就结束了,觉得这篇文章有用的小伙伴们,可以点赞➕关注哦~

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
如果您想使用Vue3和TypeScript来删除后台表格中的数据,可以使用以下步骤: 1. 在Vue3组件中定义table表格的数据结构和获取方式。 2. 在组件中定义一个方法来处理删除操作,理想情况下应该是在后台进行处理。 3. 在方法中使用axios库发送请求来删除所选行的数据。 4. 在Vue3中使用watchEffect函数来监听表格数据的变化,并实时更新数据。 5. 最后,您可以将删除操作绑定到table表格中的一列上,并在单击时触发该方法。 以下是一个示例代码: ```typescript <template> <table> <thead> <tr> <th>Id</th> <th>Name</th> <th>Delete</th> </tr> </thead> <tbody> <tr v-for="item in items" :key="item.id"> <td>{{ item.id }}</td> <td>{{ item.name }}</td> <td> <button @click="deleteItem(item.id)">Delete</button> </td> </tr> </tbody> </table> </template> <script> import { reactive, watchEffect } from 'vue'; import axios from 'axios'; export default { setup() { // 定义表格数据结构 const items = reactive([ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, { id: 3, name: 'Item 3' }, { id: 4, name: 'Item 4' }, ]); // 删除操作方法 const deleteItem = async (id: number) => { const response = await axios.delete(`/items/${id}`); if (response.status === 200) { items.value = items.value.filter((item) => item.id !== id); } }; // 监听表格数据变化并更新 watchEffect(() => { console.log('Items updated:', items); }); // 返回视图数据 return { items, deleteItem, }; }, }; </script> ``` 在此示例中,我们使用reactive函数创建可响应的表格数据items,并在deleteItem方法中使用axios库发送删除数据请求。在请求成功后,我们使用filter方法更新表格数据中的值。最后,使用watchEffect函数监听items的变化并在控制台上进行打印。在模板中,我们将deleteItem方法绑定到“删除”按钮上,以便在单击按钮时调用它。 请注意,此示例代码仅供参考。具体实现取决于您的后端API和表格组件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dorable_Wander

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值