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

news2025/7/27 17:40:07

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.coloradmin.cn/o/35278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ssh外网访问内网服务器

现在有这样一个情况&#xff0c;实验室有自己的服务器&#xff08;内网&#xff09;&#xff0c;并且有相关老师进行维护&#xff08;公网&#xff09;&#xff0c;我们可以在内网用内网ip访问服务器&#xff0c;如果我们在家里只能通过公网进行登录。但是我在实验室有一个小服…

Python学习基础笔记十一——编码

1、Python编码解码&#xff1a; 文件转换为二进制&#xff0c;就是编码。 二进制转换为文本&#xff0c;就是解码。 2、ASCII编码&#xff1a; 字符‘a’在ASCII码表中的对应的数据就是97&#xff0c;二进制为1100001。 # 查看‘a’的ASCII编码 print(ord(a))# 转换为二进制…

04.OpenWrt-连接有线网络

04.OpenWrt-连接有线网络 路由器作为重要的网络设备不光可以连接网络,也可是通过有线或者无线的方式给其他设备连接网络. 4.1 网络的基础知识 4.1.1 常用的网络设备 光调制解调器:俗称 光猫 .现在使用的基本都是光纤入户,光纤中传递的是光信号,进过光猫的转换为电信号.安装…

Golang Channel 实战技巧和说明

文章目录Golang Channel 实战技巧和说明Channel 的一些实战说明关于 close Channelclose Channel 的一些说明v, ok : <-ch 判断是否 close优雅判断是否 close 的封装for-range 读取 Channel 数据select 读写 Channel 数据Channel 的读写超时机制【select timeout】TryEnque…

180H_FPGA时钟结构

PLL 端口信号解释 信号名含义PLL_PWDpower downpll_rst复位PLLclkin_dsel0:clkin1作为参考时钟;1:clkin2作为参考时钟clkfb外部反馈时钟输入dyn_idiv[5:0]动态 input divider&#xff08;输入分频器&#xff09; 分频系数 0&#xff1a;64分频&#xff1b;1:63分频&#xff1b…

HTML+CSS-项目:学成在线

项目&#xff1a;学成在线 Date: September 9, 2022 Summary: 创建根目录、创建网页布局 0. 项目预览&#xff1a; 1. 创建根目录&#xff1a; 目标&#xff1a;创建项目根目录 根目录&#xff1a;网站的第一级文件夹 根目录&#xff1a; 图片文件夹: images样式文件夹: C…

redis 的java客户端 基础(一)

目录 一、redis的客户端语言支持 二、Jedis快速入门 2.1 Jedis连接池 2.1.1 创建Jedis的连接池 三、SpringDataRedis 3.1 快速入门SpringDataRedis 一、redis的客户端语言支持 在Redis官网中提供了各种语言的客户端&#xff0c;地址&#xff1a;https://redis.io/resources/…

[oeasy]python0020换行字符_feed_line_lf_反斜杠n_B语言_安徒生童话

换行字符 回忆上次内容 struct包可以让我们使用封包格式 把数字封包到字节里 pack函数负责封包unpack函数负责解封 我们通过封到不同的字节状态 遍历了一次ascii码还是有那片黑色的区域 好像是一片黑暗森林&#xff01;那里面到底有些什么秘密&#xff1f;&#x1f914; 我们这…

2022大厂面试秘籍Java岗:中间件+算法+HTTP+线程+虚拟机+分布式

前言 很多朋友对面试不够了解&#xff0c;不知道如何准备&#xff0c;对面试环节的设置以及目的不够了解&#xff0c;因此成功率不高。通常情况下校招生面试的成功率低于1%&#xff0c;而社招的面试成功率也低于5%&#xff0c;所以对于候选人一定要知道设立面试的初衷以及每个…

CSS 选择器

目录 1、导语 2、css基本选择器 1&#xff09;、标签选择器 2&#xff09;类选择器 3&#xff09;ID选择器 4&#xff09;通配符选择器 3、css组合选择器 1&#xff09;标记类别选择器&#xff08;交集选择器&#xff09; 2&#xff09;后代选择器 3&#xff09;子选择器 4…

[足式机器人]Part3机构运动微分几何学分析与综合Ch02-2 平面机构离散运动鞍点综合——【读书笔记】

本文仅供学习使用 本文参考&#xff1a; 《机构运动微分几何学分析与综合》-王德伦、汪伟 《微分几何》吴大任 Ch02-2 平面机构离散运动鞍点综合2.3 鞍点圆2.3.1 鞍圆与二副连架杆R-R2.3.2 鞍圆误差2.3.3 四位置鞍圆2.3.4 五位置鞍圆2.3.5 多位置鞍圆2.3 鞍点圆 平面连杆机构中…

浅谈JVM(面试常考题)

文章目录JVM简介JVM 执行流程JVM运行时数据区(内存布局)程序计数器(线程私有)Java虚拟机栈(线程私有)堆(线程共享)方法区(线程共享)小结JVM类加载类加载的具体过程LoadingLinkingVerificationPreparationResolutionInitialization类加载的执行顺序双亲委派模型JVM中的垃圾回收机…

最新手工整理31省市自治区180+指标面板数据-各省份邮电和运输指标汇总(2002-2020)

1、数据来源&#xff1a;国家统计局 2、时间跨度&#xff1a;2002-2020 3、时间频率&#xff1a;年度 4、区域范围&#xff1a;31个省市⾃治区 5、邮电指标&#xff1a; 包裹数(万件)报刊期发数(万份)汇票业务(万笔)集邮业务量(万枚)固定本地电话通话时长(万分钟)固定长途…

流媒体技术基础-流媒体编码与协议

一、流媒体传输协议 1.实时传输协议RTP 针对多媒体数据流的一种传输协议&#xff0c;建立在UDP协议上&#xff0c;属于传输层协议。 定义互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统&#xff08;配合RTCP协议&#xff09;、视频会议和视频电话系统&…

2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 问题二python代码实现(更新完毕)

更新信息 2022-11-24 10:00 更新问题1和问题2 思路 2022-11-24 23:20 更新问题一代码 2022-11-25 11:00 更新问题二代码 相关链接 【2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 问题一python代码实现】 【2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 问题二python代…

爱尔兰博士后招聘|利默里克大学-广告学

[国外博士后招聘-知识人网]爱尔兰利默里克大学广告学博士后 爱尔兰利默里克大学是爱尔兰独立后第一所由政府资助而建的综合型独立大学。爱尔兰利默里克大学是爱尔兰七所国立大学之一&#xff0c;1972年开始招生&#xff0c;1989年被政府准予授予学位。利莫瑞克大学下设六个学院…

【学习笔记25】JavaScript字符串的基本认识

JavaScript字符串的基本认识一、严格模式二、字符串1、字面量2、构造函数3、包装类型三、字符集&#xff08;了解&#xff09;1、ASCII&#xff1a;128个2、GBK国标码&#xff1a;前128位ASCII&#xff0c;从129开始为汉字3、unicode(万国码)四、字符串的length与下标一、严格模…

【数论】质数

文章目录一、试除法判定质数二、试除法分解质因数三、筛法求素数1. 朴素筛法2. 埃氏筛法3. 线性筛法质数&#xff1a;大于1&#xff0c;且只包含1和本身两个因数的整数 一、试除法判定质数 如果是合数&#xff0c;那么因数一定是成对出现的&#xff0c;比如12&#xff0c;有2…

【Axure教程】能增删改数据的动态饼图

可视化视图是系统分析中非常重要的一个环节&#xff0c;今天作者就教大家在Axure中如何用中继器表格结合echarts图片&#xff0c;制作出一个能够动态增删改数据饼图的原型模板。需要制作的效果如下图所示&#xff1a; 自动生成饼图&#xff1a;通过修改中继器表格中的数据&…

教程三 在Go中使用Energy创建跨平台应用 - 状态控制

本文介绍在Energy中如何像浏览器一样控制状态, 页面的加载、前进、后退、刷新、暂停刷新 前提-需要安装好开发环境参考:教程一环境安装 创建应用 开发环境中 MacOSX平台必须在"GlobalCEFInit"之前设置CEF设置使用CEF 和 CEF框架目录&#xff0c;生成开发执行应用程…