【Ant Design Pro】快速上手

devtools/2024/9/24 1:18:29/

初始化

初始化脚手架:快速开始

官方默认使用 umi4,这里文档还没有及时更新(不能像文档一样选择 umi 的版本),之后我选择 simple。

然后安装依赖。

在 package.json 中:

    "start": "cross-env UMI_ENV=dev max dev","start:dev": "cross-env REACT_APP_ENV=dev MOCK=none UMI_ENV=dev max dev",

这里 start 模式使用了前端项目内的 mock 数据,而 start:dev 没有使用mock 数据,需要真实的后端接口。

Pro 的底座是 umi,umi 是一个 webpack 之上的整合工具。 umi 相比于 webpack 增加了运行时的能力,同时帮助我们配置了很多 webpack 的预设。也减少了 webpack 升级导致的问题。

以前 umi/plugins 里的插件已经内置到 @umijs/plugins 了,可以通过 plugins: [‘@umijs/plugins/dist/*’] 用。插件都需要兼容 umi4 才能用,插件 api 有变化,没兼容的是用不了的。比如 umi-ui 在 umi4 中并不支持 issues。

umi-ui 还是很好用的,不知道什么时候可以支持 umi4.

项目瘦身

移除国际化

在这里插入图片描述

然后也可以把 src/locale 文件夹删掉了。

在这里插入图片描述

  • config 配置
  • defaultConfig 默认配置
  • routes 路由
  • proxy 代理配置
  • oneapi 也是和 api 相关的,可以删掉

然后可以删除页面和对应的路由。

在这里插入图片描述

这里的 swagger 接口文档工具也可以删掉。

前后端联调

antd pro 请求 或者是 umi 请求

查看 antdpro 官网,发现请求相关配置在 app.tsx 中。

或者也可以打开 antd pro 的 github 源码,发现 app.tsx 中关于请求的配置:

/*** @name request 配置,可以配置错误处理* 它基于 axios 和 ahooks 的 useRequest 提供了一套统一的网络请求和错误处理方案。* @doc https://umijs.org/docs/max/request#配置*/
export const request = {...errorConfig,
};

我们可以在 app.tsx 中写自己请求的相关配置。

import { RequestConfig } from 'umi';export const request: RequestConfig = {timeout: 1000,errorConfig: {},middlewares: [],requestInterceptors: [],responseInterceptors: [],errorHandler,// ...
};

但是他这里的配置明显是不全的,所以我们需要逐层进入源码进行查找。然后就可以发现很多配置(比如 prefix,timeout等)。

或者也可以看官方文档(但是直接看源码会更快更准一些):

在这里插入图片描述

这是最新版的 umi,不同于上个版本,上一个版本应该是 透传的 umi-request 。

直接在 github 中看 umi-request,发现更新也已经是三年前了。

配置代理

直接使用 antdpro 提供的 config\proxy.ts 即可。

然后前端统一在 api.ts 中加上 api:

在这里插入图片描述

同时后端也都加上 /api 前缀:

在这里插入图片描述

(虽然前后端同时都不加 /api 应该也可以😂)

Procomponents

这里 antdpro 已经有一个 登录表单,我们希望使用一个 注册表单,但是 登录的 button 文字在文档中并没有说明,这时我们可以追溯源码:

在这里插入图片描述

可以发现有很多配置项,其中 submitter.searchConfig.subText 就是该 button 中的文字,然后做以下修改:

在这里插入图片描述

然后就只需要修改类型校验、登录注册的 type.d.ts 和 相关 api 请求接口方法就可以(或者加一些自己的业务校验)。

权限管理

app.tsx 是项目全局入口文件(在首次访问页面执行 / 刷新页面),定义了整个项目使用的公共数据,getInitialState 方法定义了项目初始化需要执行的操作。getInitialstate。

access.ts 是定义权限的地方,access。通过初始化数据时获取的用户数据,来判断是否具有 admin 权限。

export default function access(initialState: { currentUser?: API.CurrentUser } | undefined) {const { currentUser } = initialState ?? {};return {canAdmin: currentUser && currentUser.access === 'admin',};
}

请求响应拦截器

requestErrorConfig.ts 里面规定了全局请求响应拦截的一系列操作,request。

其中,response

里面的 data 可以直接获取后端返回的数据:

1

然后整体对象 errorConfig 会被引入到 app.ts 中,然后导出:

/*** @name request 配置,可以配置错误处理* 它基于 axios 和 ahooks 的 useRequest 提供了一套统一的网络请求和错误处理方案。* @doc https://umijs.org/docs/max/request#配置*/
export const request = {...errorConfig,
};

http://www.ppmy.cn/devtools/85429.html

相关文章

C# 植物大战僵尸

Winform 版本开发 高效率、流畅植物大战僵尸 git地址:冯腾飞/植物大战僵尸

Matlab编程资源库(11)多项式计算

一、多项式的四则运算 1.多项式的加减运算 2.多项式乘法运算 函数conv(P1,P2)用于求多项式P1和P2的乘积。 这里,P1、P2是两个多项式系数向量。 3.多项式除法 函数[Q,r]deconv(P1,P2)用于对多项式P1和P2作除法运算。其中Q返回多项…

FPGA开发——D触发器的设计

1、概述 锁存器和触发器有时组合在一起,因为它们都可以在其输出上存储一位(1或0)。与锁存器相比,触发器是需要时钟信号(Clk)的同步电路。D 触发器仅在时钟从0 到 1(上升沿)或 1 到 …

【JavaEE】Bean的作用域和生命周期

一.Bean的作用域. 1.1 Bean的相关概念. 通过Spring IoC和DI的学习(不清楚的可以看的前面写过的总结,可以快速入门, http://t.csdnimg.cn/K8Xr0),我们知道了Spring是如何帮助我们管理对象的 通过 Controller , Service , Repository , Component , Configuration , Bean 来声明…

【设计模式】建造者模式

建造者模式是一种对象创建型设计模式,它将一个复杂对象的构建过程与其表示分离。 文章目录 建造者模式在实际软件中的应用案例Director 在建造者模式中的作用原理Builder 接口的设计要点如何优化建造者模式中的 Director 和 Builder 协作 Java代码实现复习一、建造者…

Vs2022+QT+Opencv 一些需要注意的地方

要在vs2022创建QT项目,先要安装一个插件Qt Visual Studio Tools,根据个人经验选择LEGACY Qt Visual Studio Tools好一些,看以下内容之前建议先在vs2022中配置好opencv,配置方式建议以属性表的形式保存在硬盘上。 设置QT路径 打开v…

PHP超级全局变量

PHP 中的超级全局变量(Superglobals)是 PHP 4.1.0 引入的一个特性,它们在脚本的全部作用域中都是可用的。这意味着一旦一个脚本被载入,这些变量就可以在脚本的任何地方被访问,无论是在函数内部还是外部。PHP 提供了几个…

深度学习系列70:模型部署torchserve

1. 流程说明 ts文件夹下, 从launcher.py进入,执行jar文件。 入口为model_server.py的start()函数。内容包含: 读取args,创建pid文件 找到java,启动model-server.jar程序,同时读取log-config文件&#xff…