React - Ant Design3.x版本安装使用,并按需引入和自定义主题

news/2024/5/19 18:13:54/文章来源:https://blog.csdn.net/Jie_1997/article/details/128037084

React - Ant Design3.x版本安装使用,并按需引入和自定义主题

  • 一. 安装使用 antd
  • 二.antd 高级配置
    • 安装 react-app-rewired,对 create-react-app 的默认配置进行自定义
    • 安装 babel-plugin-import ,按需加载组件代码和样式
    • 自定义主题

Ant Design官网:https://3x.ant.design/docs/react/use-with-create-react-app-cn

一. 安装使用 antd

  1. 安装 antd
    yarn add antd@3.26.19

  2. 修改 src/App.css 文件,引入antd/dist/antd.css

    @import '~antd/dist/antd.css';
    
  3. 修改 src/App.js 文件,引入 App.css 样式文件,并使用 andt 组件。

    import { Button } from 'antd';
    import './App.css';function App() {return (<div className="App"><Button type="primary">Button</Button></div>);
    }export default App;
    
  4. 页面正常显示 antd 的蓝色按钮组件,说明已经把 antd 组件成功运行起来了。

  5. 控制台可能会报一个错误,但是不影响项目运行,可以不用处理。如下
    在这里插入图片描述
    这是因为react默认是严格模式,官网中解释:https://reactjs.org/docs/strict-mode.html#warning-about-deprecated-finddomnode-usage
    解决方法:
    (1) 升级使用高版本的 antd
    (2) src/index.js 文件删除 React.StrictMode 标签
    在这里插入图片描述

二.antd 高级配置

安装 react-app-rewired,对 create-react-app 的默认配置进行自定义

  1. 安装 react-app-rewired
    yarn add react-app-rewired customize-cra

  2. 修改 package.json 里的 scripts 属性
    在这里插入图片描述

  3. 在项目根目录创建一个 config-overrides.js 用于修改默认配置

    module.exports = function override(config, env) {// do stuff with the webpack config...return config;
    };
    

安装 babel-plugin-import ,按需加载组件代码和样式

  1. 安装 babel-plugin-import
    yarn add babel-plugin-import

  2. 修改config-overrides.js 文件

    const { override, fixBabelImports } = require("customize-cra");
    module.exports = override(fixBabelImports("import", {libraryName: "antd",libraryDirectory: "es",style: "css",})
    );
    
  3. 移除前面在 src/App.css 里全量添加的@import '~antd/dist/antd.css';yarn start 重启项目访问页面,antd 组件的 jscss 代码都会按需加载。

自定义主题

定制主题: https://3x.ant.design/docs/react/customize-theme-cn

  1. 安装 less
    yarn add less less-loader

  2. 修改config-overrides.js 文件
    在这里插入图片描述

    const { override, fixBabelImports, addLessLoader } = require("customize-cra");
    module.exports = override(fixBabelImports("import", {libraryName: "antd",libraryDirectory: "es",style: true,}),addLessLoader({javascriptEnabled: true,modifyVars: { "@primary-color": "#1DA57A" },})
    );
    
  3. yarn start 重启项目访问页面,如果看到一个绿色的按钮就说明配置成功了。

  4. 如果项目启动失败,提示如下错误 在这里插入图片描述
    解决方法:
    继续修改 config-overrides.js 文件,使用 lessOptionsmodifyVars 进行配置,重启项目。

    const { override, fixBabelImports, addLessLoader } = require("customize-cra");
    module.exports = override(fixBabelImports("import", {libraryName: "antd",libraryDirectory: "es",style: true,}),addLessLoader({lessOptions: {javascriptEnabled: true,modifyVars: { "@primary-color": "#1DA57A" },},})
    );
    

    less-loader: https://github.com/webpack-contrib/less-loader#options

  5. 如果项目仍启动失败,提示如下错误
    在这里插入图片描述
    解决方法:
    继续修改 config-overrides.js 文件,添加 adjustStyleLoaders 属性,重启项目。

    const {override,fixBabelImports,addLessLoader,adjustStyleLoaders,
    } = require("customize-cra");
    module.exports = override(fixBabelImports("import", {libraryName: "antd",libraryDirectory: "es",style: true,}),addLessLoader({lessOptions: {javascriptEnabled: true,modifyVars: { "@primary-color": "#1DA57A" },},}),adjustStyleLoaders(({ use: [, , postcss] }) => {const postcssOptions = postcss.options;postcss.options = { postcssOptions };})
    );
    
  6. 完美解决,页面正常显示绿色的按钮,配置成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_225682.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[毕业设计]机器学习水域检测标注算法

前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投…

IO模型Netty

一、IO模型 对于一次IO操作&#xff0c;数据会先拷贝到内核空间中&#xff0c;然后再从内核空间拷贝到用户空间中&#xff0c;所以一次read操作&#xff0c;会经历以下两个阶段&#xff0c;基于这两个阶段就产生了五种不同的IO模式。 为了避免用户进程直接操作内核&#xff0c;…

Android8.1 MTK 浏览器下载的apk点击无反应不能安装

最近测试人员发现用原生浏览器下载的apk点击安装时无反应&#xff0c;不能安装。 在/vendor/mediatek/proprietary/packages/apps/Browser/src/com/android/browser/DownloadHandler.java 中&#xff0c;发现下载的apk文件缺少了mime类型&#xff0c;如下图 mimetype null造…

RS编码译码误码率性能matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 纠错编码技术在卫星通信、移动通信及数字存储等领域已获得了广泛的应用。RS码作为其中最重要的码类之一,具有优良的纠随机错误和突发错误的能力,被空间数据系统咨询委员会(CCSDS)作为一种…

计算机毕业设计——基于SpringBoot框架的网上购书系统的设计与实现

文章目录前言一、背景及意义选题背景选题目的二、系统设计主要功能运行环境三、系统实现部分页面截图展示部分代码展示四、源码获取前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 二十一世纪是网络化&#xff0c;信息化的时代&#xff0c;为了满足广大…

植入“人工心脏”助患者重获“心”生

【同期】人工心脏移植患者 刘女士这要是在过去的时候也就放弃了&#xff0c;我再活20年&#xff0c;我还能看着我大孙子成家&#xff0c;这就是我最大的希望。【解说】11月22日&#xff0c;人工心脏移植患者和心脏移植患者在即将康复出院前&#xff0c;互相握手庆贺。据了解&am…

18.3 内存池概念、代码实现和详细分析

一&#xff1a;内存池的概念和实现原理概述 malloc&#xff1a;内存浪费&#xff0c;频繁分配小块内存&#xff0c;浪费更加明显。 “内存池”要解决什么问题&#xff1f; 1、减少malloc()的次数&#xff0c;减少malloc()调用次数就意味着减少对内存的浪费 2、减少malloc()的…

Wireshark Ethernet and ARP 实验—Wireshark Lab: Ethernet and ARP v7.0

Wireshark Lab: Ethernet and ARP v7.0 1. Capturing and analyzing Ethernet frames 清除浏览器缓存 使用wireshark抓包并请求网页 修改“捕获数据包列表”窗口&#xff0c;仅显示有关 IP 以下协议的信息。 抓包干扰较多&#xff0c;故分析作者的数据包回答下列问题 包含…

关于WEB端实现电子海图之Openlayers加载切片

记笔记&#xff0c;免忘记&#xff01; 关于WEB端实现电子海图研究之思路 关于WEB端实现电子海图研究二GeoServer GeoServer完成shp文件切矢量图后&#xff0c;我们需要加载GeoServer切片在web上展示。 vector-tiles-tutorial官方示例 以下示例使用openLayers来加载 D:\s…

Django Cookie 与 Session 对比

文章目录原理比较语法比较Cookie 示例创建 Cookie更新 Cookie删除 CookieSession 示例创建 session查询 session删除一组键值对删除 session参考文档本文通过示例演示 Django 中如何创建、查询、删除 Cookie 与 Session。 原理比较 在Web开发中&#xff0c;使用 session 来完成…

Docker-CentOS开启防火墙firewalled映射Docker端口

开启docker的Tomcat容器后&#xff0c;启动 docker run -d -p 8080:8080 tomcat 访问不了Tomcat 查看防火墙所有开放的端口 firewall-cmd --zonepublic --list-ports 一、需要防火墙开启8080 端口 1、通过systemctl status firewalld查看firewalld状态&#xff0c;发现当前…

流媒体传输 - RTSP 协议

概述 协议简介 RTSP RTSP (Real-Time Stream Protocol) 实时流传输协议是一种基于文本的应用层协议&#xff0c;常被用于 建立的控制媒体流的传输&#xff0c;该协议用于 C/S 模型 , 是一个 基于文本 的协议&#xff0c;用于在客户端和服务器端建立和协商实时流会话。 RTP …

qt 实现PDF阅读器

1、前言 查阅资料可发现&#xff0c;网上的几种pdf阅读器的实现&#xff0c;几乎大多依赖的第三方库&#xff0c;这里就不做介绍了。 qt 自带的关于pdf的显示&#xff1a;pdfwriter、printpreviewwidget&#xff0c;分别为创建pdf 和 打印预览pdf。由此&#xff0c;后者似乎满足…

你一定要知道的四个程序员接外包的网站,悄悄把技术变现!

说起程序员接外包的网站&#xff0c;你在网上一搜发现数不胜数&#xff0c;但真正有用的却很少。然后你想快速的找到几个靠谱的网站&#xff0c;去看了看接外包的攻略&#xff0c;你会发现排雷的又数不胜数。一时间你还真不知道要选哪一个。 接下来就为大家推荐几个我认为比较…

基于springboot的汽车租赁管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

【RuoYi-Vue-Plus】学习笔记 44 - XSS 过滤器以及 @Xss 注解简单分析

文章目录前言参考目录关于 XSS 攻击框架集成配置说明测试方法一&#xff1a;通过过滤器测试方法二&#xff1a;通过 Xss 注解功能调用流程分析XSS 过滤器启动初始化Form 表单请求过滤JSON 对象请求过滤Xss 注解校验前言 之前在对接口进行传参时发现富文本包含的标签全部被过滤…

linux NPS 服务端安装 +linux 客户端安装

本文参考博客&#xff1a; https://blog.csdn.net/m0_57776598/article/details/123674866 一、下载安装包 1、官方下载 官方下载地址&#xff1a;https://github.com/ehang-io/nps/releases 注意不要下错了&#xff0c;当前我下的版本为 v0.26.10 2、网盘下载 网盘下载&…

干货 | 如何获取Servlet内存马?

前言 对于回显的获取主要是在ApplicationFilterChain类的lastServicedRequest / lastServicedResponse两个属性&#xff0c;是使用的ThreadLocal进行修饰的&#xff0c;并且&#xff0c;在执行请求的过程中&#xff0c;通过反射修改属性值&#xff0c;能够记录下当前线程的req…

K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署

1、重置和清除旧工程&#xff1a;每个节点主机都要运行 kubeadm reset iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X 2、部署新的k8s项目&#xff1a; 只在主节点运行&#xff0c;apiserver-advertise-address填写主…

LiveData源码分析

先放整理流程图&#xff1a; 1.postValue调2次只触发1次&#xff1f; postValue本质是把新值保存到LiveData的mPendingData成员变量里&#xff0c;版本号1&#xff0c;把执行Runnable post到主线程&#xff0c;在主线程setValue。 多次调用会更新mPendingData的值&#xff0c…