Ant Design Pro从零到一(Mock使用)

2023-11-13

认识Mock

学到这里就算是开始踏入AntD的门,然后我们还得学习一下常用的一些操作,例如Mock。

针对与Mock他大致就是用来模拟数据的,为什么会有它的出现呢?因为现在前后端开发基本是分离的,但是数据结构一般都会先定好,在日常开发中,为了前端的进度不受到后端的影响,常用Mock来做虚拟数据来模拟后端发来的请求。

本文只是简单的介绍一下Mock的使用,如果要详细学习请自行百度

Mock基本格式

export default {
  'GET /api/getValue': {
    data:[{
      name:'zhangsang',
      sex:'男'
    },{
      name:'李四',
      sex:'男'
    },]
  },
};

我们稍微变一下型,为了看起来更加美观就变成了这样

const getList = ()=>{
    const result = {
        success:true,
        data:[
            {
                id:1,
                name:'test01',
                sort:1
            },{
                id:2,
                name:'test02',
                sort:2
            }
        ]
    };
    return res.json(result);

}
export default {
    'GET /api/testList':getList,
}

在return的时候,我们看到了res.json()进行了一下json格式转化,因为我们在实际开发中,基本前后端交互都是靠JSON。

然而我们一般来说发送请求都是异步的,这时候Mock是怎么做的呢?

import {Request,Response} from "express";

const getList = async (req:Request,res:Response)=>{
    const result = {
        success:true,
        data:[
            {
                id:1,
                name:'test01',
                sort:1
            }
        ]
    };
    return res.json(result);

}
export default {
    'GET /api/testList':getList,
}

从上面可以看到就是简单的加了async关键字,让后加了request和response

认识Service

在上面说了Mock的一个基本使用,那他是如何工作的呢?

前面已经说了,Mock相当于模拟服务器数据,那请求数据的地方在哪里呢?那就是Service的文件夹中,这时候我们大致看一下Service的基础结构,方便后面的demo看懂。

import {request} from "umi";

export async function getList(){
    return request('/api/testList');
}

或者是

export async function fakeAccountLogin(params: LoginParamsType) {
  return request('/api/login/account', {
    method: 'POST',
    data: params,
  });
}

这基本就是一个service的构成,其中export async function都是关键字,request()中的’/api/tesetList’就是我们之前写的Mock中的接口。

PS:

request():其实结构是下面这样,如果是get请求可以简写。

request('/api/getValue',{
method://请求方式 GET、POST、PUT、DELETE
data: //请求参数
})

来个Demo

我们将test文件夹下面的index.tsx写入以下内容

import React from "react";
import ProTable from "@ant-design/pro-table";
import {ProColumns} from "@ant-design/pro-table";
import {getList} from "@/services/test";
import {PageContainer} from "@ant-design/pro-layout";
import {Card} from "antd";
const TestList : React.FC= ()=>{
    const columns:ProColumns[]=[
        {
            title:'id',
            dataIndex:'id'
        },{
            title: 'name',
            dataIndex: 'name'
        },{
            title: 'sort',
            dataIndex: 'sort'
        }]

    return <div>
       <PageContainer>
           <Card>
               <ProTable columns={columns}
                         request={async (params) =>{
                             let result = await getList();
                             return result;
                         }}/>
           </Card>
       </PageContainer>
    </div>
}

export default TestList;

然后在service文件夹下新建test.tx文件然后写入以下内容:

import {request} from "umi";

export async function getList(){
    return request('/api/testList');
}

接下来就是在Mock中新建立test.tx文件写入

import {Request,Response} from "express";

const getList = async (req:Request,res:Response)=>{
    const result = {
        success:true,
        data:[
            {
                id:1,
                name:'test01',
                sort:1
            },{
                id:2,
                name:'test02',
                sort:2
            },{
                id:3,
                name:'test03',
                sort:3
            },{
                id:4,
                name:'test04',
                sort:4
            }
        ]
    };
    return res.json(result);

}
export default {
    'GET /api/testList':getList,
}

接下来运行你的项目,访问,你就会看到这样

image.png

相关链接

上一篇:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ant Design Pro从零到一(Mock使用) 的相关文章

随机推荐

  • ssm整合无法注入dao层

    spring整合mybatis 在部署项目时 一直报错 dao无法注入ioc容器 Error creating bean with name accountController Unsatisfied dependency expresse
  • 听说CentOS 8 已经成绝版了 ?难道就没有后续了么?很烦!

    一 CentOS 8 已是绝版 CentOS Stream 才是未来 CentOS 官方发文称 CentOS Stream 才是 CentOS 项目的未来 在接下来的一年里 将逐步把开发工作的重心从 CentOS Linux 往 CentO
  • Linux设置用户的密码有效期

    使用命令chage加参数可以查看 更改用户密码的有效期 1 查看用户密码有效期 chage l username 如下是永不会过期的类型 以下是90天有效期的类型 2 修改密码到期时间 通过参数 M 设置账户密码的到期时间 语法 chage
  • Lua里实现将table转成字符串(序列化)和将字符串转换回table(反序列化)

    file name table序列化和反序列化的问题 lua author Clark 陈泽丹 created 2011 12 22 备注 支持table的递归结构 但数据类型不支持function属性 因为function只是记录地址 在
  • 《GPU的革命》文章整理

    整理几年前写的文章 或许对初学CUDA编程的朋友有帮助 CUDA 线程执行模型分析 一 招兵 GPU的革命 CUDA 线程执行模型分析 二 大军未动粮草先行 GPU的革命 CUDA硬件实现分析 一 安营扎寨 GPU的革命 CUDA硬件实现分
  • 16个自动化测试面试问题与解答

    1 什么是自动化测试 自动化测试是一种使用自动化工具编写和执行测试人员测试脚本和案例的技术 自动化测试的主要目标是减少手动运行的测试用例数量 而不是完全取消手动测试 2 什么时候自动化测试 在以下情况下首选自动化 重复性任务 烟雾和理智测试
  • vue3项目修改浏览器的项目icon小图标

    修改vue3项目的浏览器的图标 vue2修改图标
  • AD每次更新PCB元器件位置会变动

    用AD画板 在重新更新元器件标识注视后 更新PCB后会出现某些器件移到了外面 把它摆放好以后 如果又对原理图中进行了改动 在更新PCB之后 刚才摆放好的元器件就又移到外面 另外 其它一些情况也会出现更新PCB位置变动的情况 下面是解决办法
  • 【matplotlib】可视化解决方案——如何向图表中添加数据表

    概述 虽然 matplotlib 主要用途是绘图 但是他还是可以在绘图时帮助我们做一些其他事务 比如在图表旁边放置一个整齐的数据表格 我们必须明白为数据绘制可视化图形主主要是是为了解释那些不能理解的数据 将一些来自数据整体集合的总结性或者突
  • Pytest框架:测试用例setup和teardown

    背景 假如我们进入多个模块前 每个模块有一个用例 都要打开浏览器登录 执行完毕后 需要退出再关闭浏览器 即每次运行前都要执行登录打开 退出关闭两个大量重复的操作 这些我们都可以用前置后置初始化环境去实现 怎么去实现 就是下面要介绍的 用例设
  • 【上新】手工制作马赛克瓷砖,为 Gotchiverse 添色彩!

    你无需成为艺术家即可帮助一起绘制 Gotchiverse 现在 每个人都可以用马赛克瓷砖让他们的创造力得到发挥 让我们在 Gotchiverse 中涂抹色彩吧 最新和最伟大的美学 NFT 已准备好冲击 Gotchiverse 了 介绍一下马
  • 显示this application has requested the runtime to terminate it in an unusual way.问题的简单分析

    运行程序是出现了this application has requested the runtime to terminate it in an unusual way 的异常报告 有些Win7的操作系统可能会出现此类问题 一般是软件运行时
  • LeetCode第45题解析

    给定一个非负整数数组 你最初位于数组的第一个位置 数组中的每个元素代表你在该位置可以跳跃的最大长度 你的目标是使用最少的跳跃次数到达数组的最后一个位置 示例 输入 2 3 1 1 4 输出 2 解释 跳到最后一个位置的最小跳跃数是 2 从下
  • [Java基础系列第2弹]泛型:一种提高代码复用性和灵活性的技术

    一 什么是泛型 泛型 Generics 是一种编程技术 它可以让我们在定义类 接口或方法时 使用一个或多个类型参数 Type Parameter 而不是具体的类型 这样 我们就可以在实例化或调用时 根据需要指定具体的类型 从而实现代码的复用
  • Snipaste使用手册

    功能 截屏 贴图和做笔记 使用场景举例 1 双桌面 一个是学习视频 一个是代码编辑器 截取学习视频的代码图片贴到桌面上 边看边在编辑器中敲代码 2 获取像素颜色值 3 在截屏上做笔记 and so on 常用快捷键 自定义快捷键 F1 截屏
  • CentOS 静态IP分配,提示Error, some other host already uses address解决办法

    CentOS 静态IP分配 提示Error some other host already uses address解决办法 一 第一 修改 ifup ethvi etc sysconfig network scripts ifup eth
  • 使用 Velero 备份还原 Kubernetes 集群

    Velero https velero io 可以提供备份和还原 Kubernetes 集群资源和持久卷的能力 你可以在公有云或本地搭建的私有云环境安装 Velero 可以为你提供以下能力 备份集群数据 并在集群故障的情况下进行还原 将集群
  • Nginx平滑升级记录

    因为扫描到了Nginx漏洞 所以需要对Nginx升级 同时不影响原来的nginx配置 旧版本为 nginx 1 18 0 扫描到3个漏洞 NGINX Controller 安全漏洞 CVE 2021 23017 nginx 内存损坏漏洞 C
  • models问题汇总

    1 在不卸载模块的情况下 删除model表 如想删除下表 第一步 先删除全部表属性 升级模块 第二步 再删除表及在ir model access csv中分配给ogsp phone表的权限 最后升级模块
  • Ant Design Pro从零到一(Mock使用)

    认识Mock 学到这里就算是开始踏入AntD的门 然后我们还得学习一下常用的一些操作 例如Mock 针对与Mock他大致就是用来模拟数据的 为什么会有它的出现呢 因为现在前后端开发基本是分离的 但是数据结构一般都会先定好 在日常开发中 为了
Powered by Hwhale