当前位置: 首页 > news >正文

【Ant Design Pro】快速上手

初始化

初始化脚手架:快速开始

官方默认使用 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,
};

相关文章:

【Ant Design Pro】快速上手

初始化 初始化脚手架:快速开始 官方默认使用 umi4,这里文档还没有及时更新(不能像文档一样选择 umi 的版本),之后我选择 simple。 然后安装依赖。 在 package.json 中: "start": "cross-e…...

Hive3:Hive初体验

1、创建表 CREATE TABLE test(id INT, name STRING, gender STRING);2、新增数据 INSERT INTO test VALUES(1, 王力红, 男); INSERT INTO test VALUES(2, 钉钉盯, 女); INSERT INTO test VALUES(3, 咔咔咔, 女);3、查询数据 简单查询 select * from test;带聚合函数的查询 …...

blender顶点乱飞的问题解决

初学blender,编辑模式下移动某些顶点,不管是移动还是滑动都会出现定点乱飞的问题,后来才发现是开了吸附工具的原因!!!! 像下面这样,其实我只是在Z轴上移动,但是就跑的很…...

Elasticsearch(ES) 集群脑裂

脑裂问题(split-brain problem)是指一个分布式系统中,当网络分裂(network partition)发生时,导致系统内部的两个或多个节点相互独立地认为自己仍然与其他节点连接,每个节点组都试图执行操作,这可能会导致数…...

spark 3.0.0源码环境搭建

环境 Spark版本:3.0.0 java版本:1.8 scala版本:2.12.19 Maven版本:3.8.1 编译spark 将spark-3.0.0的源码导入到idea中 执行mvn clean package -Phive -Phive-thriftserver -Pyarn -DskipTests 执行sparksql示例类SparkSQLExam…...

3.3、matlab彩色图和灰度图的二值化算法汇总

1、彩色图和灰度图的二值化算法汇总原理及流程 彩色图和灰度图的二值化算法的原理都是将图像中的像素值转化为二值(0或1),以便对图像进行简化或者特定的图像处理操作。下面分别介绍彩色图和灰度图的二值化算法的原理及流程: 1)彩色图的二值化算法原理及流程 (1)原理:…...

新手必看:Elasticsearch 入门全指南

Elasticsearch 入门介绍 Elasticsearch 是一个开源的分布式搜索和分析引擎,广泛应用于处理大规模数据和实时搜索需求。它基于 Apache Lucene 构建,具备高可扩展性和分布式特性,能够快速、可靠地存储、搜索和分析大量数据。本文将介绍 Elasti…...

【Linux】TCP全解析:构建可靠的网络通信桥梁

文章目录 前言1. TCP 协议概述2. TCP报头结构3. 如何理解封装和解包呢?4. TCP的可靠性机制4.1 TCP的确认应答机制4.2 超时重传机制 5. TCP链接管理机制5.1 经典面试题:为什么建立连接是三次握手?5.2 经典面试题:为什么要进行四次挥…...

图像处理 -- ISP中的3DNR与2DNR区别及实现原理

ISP中的3DNR与2DNR区别及实现原理 2DNR(2D Noise Reduction) 2DNR的原理: 2DNR主要针对单帧图像进行降噪处理。它利用空间域内的像素值,采用空间滤波的方法来减少噪声。常用的方法包括均值滤波、中值滤波和高斯滤波等。这些方法…...

硬盘分区读不出来的解决之道:从自救到专业恢复

在日常的计算机使用过程中,硬盘分区读不出来的问题常常令人头疼不已。这一问题不仅阻碍了用户对数据的正常访问,还可能预示着数据安全的潜在威胁。硬盘分区读不出来,通常是由于分区表损坏、文件系统错误、物理扇区损坏、驱动程序冲突或硬件连…...

盘点2024年网上很火的4个语音识别转文字工具。

语音识别转文字是一项非常实用的技术,可以帮助我们在会议记录中省去手动记录,在采访中迅速得到文字稿,在学习中快速生成课堂笔...运用十分广泛。但是很多人不知道要怎么转换,在这里我便给大家介绍几款效率非常高的语音转文字的工具…...

解决 Git 访问 GitHub 时的 SSL 错误

引言 在使用 Git 进行版本控制时,我们可能会遇到各种网络相关的错误。其中一种常见的错误是 SSL 连接问题,这会导致 Git 无法访问远程仓库。本文将介绍一个具体的错误 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0,以及如何通过禁用 SSL 证…...

LinuxCentos中安装apache网站服务详细教程

🏡作者主页:点击! 🐧Linux基础知识(初学):点击! 🐧Linux高级管理防护和群集专栏:点击! 🔐Linux中firewalld防火墙:点击! ⏰️创作…...

LUA脚本改造redis分布式锁

在redis集群模式下,我们会启动多个tomcat实例,每个tomcat实例都有一个JVM,且不共享。而synchronize锁的作用范围仅仅是当前JVM,所以我们需要一个作用于集群下的锁,也就是分布式锁。(就是不能用JVM自带的锁了…...

web端使用HTML5开发《贪吃蛇》小游戏教程【附源码】

自制游戏列表 1植物大战僵尸自制HTML5游戏《植物大战僵尸》2开心消消乐自制HTML5游戏《开心消消乐》3贪吃蛇自制HTML5游戏《贪吃蛇》4捕鱼达人自制HTML5游戏《捕鱼达人》 一、游戏简介 贪吃蛇是一款经典的电子游戏,最早在1976年由Gremlin公司推出,名为…...

Selenium使用教程-Selenium环境搭建与基础操作

Selenium环境搭建与基础操作 1. 引言:Selenium简介​ Selenium,作为自动化测试领域的明星工具,以其强大的跨浏览器测试能力而闻名。它支持多种编程语言(如Java、Python、C#等),允许开发者编写脚本来模拟真…...

1950年-2021年中国历年民航航线里程统计报告

数据为1950年到2021年我国每年的民航航线总里程数据。 2021年,我国定期航班航线总里程为689.78万公里,相比2019年下降了258.44万公里。 数据统计单位为:公里. 数据说明: 2011年起民航航线里程改为定期航班航线里程 我国定期航班…...

前端了解到框架-网络复习

前端 HTML 超文本标记语言 画页面 各种各样的标签组成页面进行展示 桌面创建文本修改后缀即可 <!DOCTYPE html>: 声明文档类型和HTML版本。<html>: 根标签&#xff0c;所有其他标签都包含在内。<head>: 包含了文档的元数据&#xff0c;如字符编码、网页标…...

防火墙——网络环境支持

目录 网络环境支持 防火墙的组网 web连接上防火墙 web管理口 让防火墙接到网络环境中 ​编辑 管理员用户管理 缺省管理员 接口 配置一个普通接口 创建安全区域 路由模式 透明模式 混合模式 防火墙的安全策略 防火墙转发流程 与传统包过滤的区别 创建安全策略 …...

阅读笔记:明朝那些事儿之拐弯中的帝国

​万历皇帝时期内阁首辅&#xff1a; 张居正&#xff0c;申时行&#xff0c;王锡爵&#xff0c;许国&#xff0c;王家屏&#xff0c;赵志皋&#xff08;给皇帝写辞职信没有回音&#xff0c;自己不告而回家&#xff09;&#xff0c;沈一贯&#xff0c;于慎行&#xff0c;叶向高…...

突破语言壁垒:XUnity.AutoTranslator的创新解决方案

突破语言壁垒&#xff1a;XUnity.AutoTranslator的创新解决方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 当你打开一款期待已久的国外游戏&#xff0c;却发现满屏外文让剧情理解寸步难行&#xff1…...

s2-pro音色复用效果实测:不同参考音频时长(3s/10s/30s)对合成质量影响

s2-pro音色复用效果实测&#xff1a;不同参考音频时长&#xff08;3s/10s/30s&#xff09;对合成质量影响 1. 引言 s2-pro作为Fish Audio开源的专业级语音合成模型镜像&#xff0c;其音色复用功能在实际应用中表现如何&#xff1f;本文将针对一个关键问题展开实测&#xff1a…...

OpenClaw+Qwen3-32B低成本方案:RTX4090D镜像长任务稳定性实测

OpenClawQwen3-32B低成本方案&#xff1a;RTX4090D镜像长任务稳定性实测 1. 为什么需要测试长任务稳定性&#xff1f; 上周我遇到一个头疼的问题&#xff1a;用OpenClaw整理3年积累的摄影素材时&#xff0c;任务执行到2小时突然中断。检查日志发现是显存溢出导致模型服务崩溃…...

Redis管理效率革命:AnotherRedisDesktopManager实战指南

Redis管理效率革命&#xff1a;AnotherRedisDesktopManager实战指南 【免费下载链接】AnotherRedisDesktopManager qishibo/AnotherRedisDesktopManager: Another Redis Desktop Manager 是一款跨平台的Redis桌面管理工具&#xff0c;提供图形用户界面&#xff0c;支持连接到Re…...

RTX 4090显卡福利:Qwen2.5-VL-7B-Instruct轻量化部署,支持对话历史管理

RTX 4090显卡福利&#xff1a;Qwen2.5-VL-7B-Instruct轻量化部署&#xff0c;支持对话历史管理 1. 项目概述 Qwen2.5-VL-7B-Instruct是阿里通义千问推出的多模态大模型&#xff0c;专为视觉交互任务优化。本教程将展示如何在RTX 4090显卡上实现该模型的轻量化部署&#xff0c…...

Cartool实战:手把手教你完成静息态EEG微状态分析的组水平聚类与模板匹配

Cartool实战&#xff1a;静息态EEG微状态分析全流程解析与避坑指南 在认知神经科学研究中&#xff0c;静息态EEG微状态分析正成为探索大脑动态功能网络的重要工具。不同于传统频域分析&#xff0c;微状态分析通过捕捉毫秒级地形图变化&#xff0c;揭示大脑信息处理的离散状态转…...

PaddleOCR-VL-1.5:0.9B VLM实现文档解析新SOTA

PaddleOCR-VL-1.5&#xff1a;0.9B VLM实现文档解析新SOTA 【免费下载链接】PaddleOCR-VL-1.5-GGUF 项目地址: https://ai.gitcode.com/paddlepaddle/PaddleOCR-VL-1.5-GGUF 导语&#xff1a;百度飞桨团队推出PaddleOCR-VL-1.5&#xff0c;以0.9B参数量的轻量化视觉语言…...

【FastAPI 2.0流式AI响应终极指南】:20年架构师亲授异步SSE/Chunked Transfer实战避坑清单

第一章&#xff1a;FastAPI 2.0流式AI响应面试概览在现代AI应用开发中&#xff0c;面试场景下的实时交互体验正成为关键评估维度。FastAPI 2.0 引入了对原生异步流式响应&#xff08;StreamingResponse&#xff09;的深度优化&#xff0c;支持 Server-Sent Events&#xff08;S…...

AI 与大模型相关

一、 AI 与大模型相关 1.1 Agent&#xff08;智能体&#xff09; 定义&#xff1a;具备自主规划、工具调用、记忆管理、任务执行能力的 AI 实体&#xff0c;能主动完成复杂目标。 核心能力&#xff1a;拆解任务、调用 API / 工具、自主决策、持久记忆、后台执行。 区别&am…...

OpenClaw跨平台脚本:nanobot统一管理mac与Windows文件

OpenClaw跨平台脚本&#xff1a;nanobot统一管理mac与Windows文件 1. 为什么需要跨平台文件管理 在日常工作中&#xff0c;我经常需要在macOS和Windows双系统间切换。最让我头疼的就是文件路径的兼容性问题——macOS使用正斜杠/而Windows使用反斜杠\。每次写脚本都要为不同平…...