webpack5搭建react框架-antd组件库使用

news2024/9/23 13:21:23

antd组件库使用

一、前言

前面已经完成了webpack5 + react框架的配置搭建,我们在进行项目开发的时候大多还会使用第三方的组件库,而antd组件库在react项目中使用是非常非常多的,所以就将react框架使用最多的antd组件库引入并使用。

二、antd组件库引入

1、安装

npm i antd

修改test.jsx文件,增加antd组件库的使用

// test.jsx
import React from 'react';
import { Button, Input, Pagination } from 'antd';
import('./css/test.less');

export default function test() {
  return (
    <div>
      <h2 className="test_content">我是test组件</h2>
      <Button block>我是默认按钮</Button>
      <Button type="primary" block>
        我是primary按钮
      </Button>
      <hr />
      <Input placeholder="我是基础输入框" />
      <hr />
      <Pagination defaultCurrent={6} total={500} />
    </div>
  );
}

antd 组件5.xx版本默认支持基于 ES modules 的 tree shaking,所以使用的时候我们直接引入使用就会有按需加载的效果。查看页面使用组件效果
在这里插入图片描述

2、定制主题

上面已经完成了基础的使用,可以看到在使用一些组件时如:button、Pagination页码高亮等都会有自己默认的主题色,假如我们的项目和组件库默认的主题色不一样时,我们需要将主题色设置和自己项目风格一致而不能每次都要写大量的样式进行覆盖。antd组件中支持使用ConfigProvider对主题色进行全局配置。

修改app.jsx文件,增加主题色修改

import React from 'react';
// 引入ConfigProvider组件
import { ConfigProvider } from 'antd';
import './app.css';
import './app.less';
import wImage from '@asset/images/wind.png';
import gImage from '@asset/images/girl.jpeg';
import Test from './components/test';

export default function app() {
  return (
    <div className="app-wrap">
      <h2>webpack5-react</h2>
      <div className="content">225789</div>
      <img src={wImage} alt="" />
      <img src={gImage} alt="" />
      {/* // 传入主题色配置 */}
      <ConfigProvider
        theme={{
          token: {
            colorPrimary: '#00b96b',
          },
        }}
      >
        <Test />
      </ConfigProvider>
    </div>
  );
}

在app.jsx文件中使用ConfigProvider将使用antd组件的文件进行包裹,然后传入主题色的配置即可。如果app.jsx内也有antd组件的使用,那么直接将ConfigProvider作为app.jsx的根组件使用将页面元素全部包裹即可。查看效果
在这里插入图片描述

3、切换语言

antd组件库的默认语言是英文,从分页组件可以看到默认的page内容,我们在实际开发中的项目不可能都是英文的那么就涉及到语言的切换,下面也需要使用ConfigProvider进行语言的配置。

修改app.jsx文件,增加antd组件库国际化语言修改

import React from 'react';
// 引入配置组件
import { ConfigProvider } from 'antd';
// 引入语言包
import zhCN from 'antd/locale/zh_CN';

export default function app() {
  return (
    <div className="app-wrap">
      <ConfigProvider
        // 传入主题色配置
        theme={{
          token: {
            colorPrimary: '#00b96b',
          },
        }}
        // 传入语言包
        locale={zhCN}
      >
        <Test />
      </ConfigProvider>
    </div>
  );
}

只需要在ConfigProvider全局配置组件中,传入locale引入的语言包即可,查看效果
在这里插入图片描述

4、将antd单独打包

在之前生产环境搭建时,我们对构建的资源进行了代码分割node_modules中的代码会单独提取出来,antd组件也会被提取到node_modules资源中去,有可能随着想目越来越大我们引入的组件越来越多,就会使打包的资源越来越大,所以我们还可以将antd组件库的代码进一步单独提取。

修改webpack.prod.js文件,增加antd分割配置

// webpack.prod.js
module.exports = merge(baseConfig, {
  optimization: {
    splitChunks: { // 分割代码
      cacheGroups: {
        // 增加antd提取
        antd: {
          name: 'antd',
          test: /[\\/]node_modules[\\/](antd|@ant-design)/,
          chunks: 'all',
          priority: 10,
          reuseExistingChunk: true,
        },
      }
    },
  },
})

查看打包后的文件并自己对比打包后的资源大小
在这里插入图片描述

三、结语

自己搭建的react项目引入antd组件库的步骤就完成了,antd的基础使用还是非常的简单,它还有其他更多更丰富的功能和配置具体的可以去官网查看文档,这里就不在赘述了。

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

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

相关文章

京东给了兄弟姐妹们稳稳的幸福

“今天我看了宿舍楼&#xff0c;我真的是气得想打人&#xff1b;我原来一直说的是高级单身公寓&#xff01;可实际情况呢&#xff1f;我说了多少遍了&#xff0c;要让员工、让兄弟们活的有尊严。而我们宿迁分公司的管理层是怎么做的呢&#xff0c;说难听的就是没有把员工当人去…

低代码平台的多租户SAAS系统实战解决方案—JeecgBoot

JeecgBoot免费低代码平台&#xff0c;提供一键切换多租户模式机制&#xff01;快速实现全系统的saas租户方案&#xff0c;通过租户ID进行数据隔离。 租户设计思路 1、开启全系统租户隔离 开启方法 将 org.jeecg.config.mybatis.MybatisPlusSaasConfig#OPEN_SYSTEM_TENANT_CO…

RabbitMQ --- 消息可靠性

消息队列在使用过程中&#xff0c;面临着很多实际问题需要思考&#xff1a; 一、消息可靠性 消息从发送&#xff0c;到消费者接收&#xff0c;会经理多个过程&#xff1a; 其中的每一步都可能导致消息丢失&#xff0c;常见的丢失原因包括&#xff1a; 发送时丢失&#xff1a; …

(java)继承和多态 (详解)

目录 1 继承 1.1为什么需要继承 1.2 继承概念 1.3 继承的语法 1.4 父类成员访问 1.4.1 子类中访问父类的成员变量 1.4.2 子类中访问父类的成员方法 1.5 super关键字 1.6 子类构造方法 1.7 super和this 1.7.1 this 1.7.2 super和this 1.8 再谈初始化 1.9 继承方…

软考信管高级——人力资源管理

人力资源管理内容 人力资源管理计划 内容&#xff1a; 角色与职责&#xff1a;定义项目所需的岗位、技能和能力项目组织图&#xff0c;说明项目所需的人员数量人员配备管理计划&#xff0c;说明需要每个团队的时间段以及有助于项目团队参与的其他重要信息 成功的项目团队的特…

Linux安装java jdk

1、检查系统中jdk 版本&#xff1a;java -version 2、检测 jdk 安装包&#xff1a;rpm -qa | grep java 3、卸载 openjdk rpm -e --nodeps tzdata-java-2017b-1.el7.noarch rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64 rpm -e --nodeps java-1.8.0-open…

深度学习细节总结

计算机视觉 目标检测&#xff0c;语义分割&#xff0c;目标分类 自然语言处理NLP 数据结构 数据结构 访问元素 线性回归 可以看成是一个单层的神经网络&#xff0c;有显式的解 优化算法 梯度下降&#xff0c;超参数&#xff1a;学习率、批量大小 分类回归 单层感知机…

RuntimeError:cuDNN error:CUDNN_STATUS_EXECUTION_FAILED

背景 最近在服务器上跑Deeplabv3进行语义分割时&#xff0c;需要使用GPU版的pytorch。 我在Anaconda下配置了适配服务器CUDA的pytorch&#xff0c;但是报错如下&#xff0c;&#xff08;下图无限接近于我的错误&#xff0c;但是我忘记截图我的报错了&#xff0c;所以用了下面这…

魔百盒CM211-1S_ZG_增强版2+16_当贝纯净版桌面-卡刷固件包

魔百盒CM211-1S_ZG_增强版216_当贝纯净版桌面-卡刷固件包-内有教程-华为鸿蒙动画 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置的…

图灵java学习

反汇编 最后一行 效果是 程序计数器&#xff0c;保存下一个指令的地址 iadd. int加法 动态链接 Java动态链接&#xff08;Dynamic Linking&#xff09;是Java中的一种运行时特性&#xff0c;它允许在应用程序运行时动态地链接和加载库和组件。在编译时&#xff0c;Java程序不需…

逆向效率提升工具与方法汇总(持续更新...)

欢迎大家提供高效方法与工具 工具油猴插件SwitchyOmegaReresFiddler插件编程猫 奇淫技巧seleniumOptions常用参数防检测将浏览器navigator.webdriver重置为Falsestealth.min.js解决常见的指纹检测浏览器worker完美解决检测 小试牛刀chrome开发者工具设置中文调试代码如何友好格…

【MySQL】(创建,查看,使用,删除)数据库

目录 一.Cmd命令执行操作 1.使用cmd命令进入数据库&#xff08;mysql -uroot -p) 2.查看数据库 3.创建数据库 4.使用数据库 5.删除数据库 二.数据库软件执行操作 1.查看数据库 2.创建数据库 3.数据库 4.删除数据库 一.Cmd命令执行操作 1.使用cmd命令进入数据库&#…

详解PostMan使用

目录 1.简介 2.管理用例集 3.断言 3.1.概述 3.2.判断响应状态码 3.3.判断响应体是否包含某个字符串 3.4.断言JSON数据 3.5.断言响应头 4.全局变量和环境变量 4.1.概述 4.2.创建环境 4.3.设置变量 4.4.获取变量 5.前置脚本 6.关联 7.批量执行 8.测试报告 1.简介…

传统机器学习(六)集成算法(2)—Adaboost算法原理

传统机器学习(六)集成算法(2)—Adaboost算法原理 1 算法概述 Adaboost(Adaptive Boosting)是一种自适应增强算法&#xff0c;它集成多个弱决策器进行决策。 Adaboost解决二分类问题&#xff0c;且二分类的标签为{-1,1}。注&#xff1a;一定是{-1,1}&#xff0c;不能是{0,1} …

Linux 线程安全

目录 传统艺能&#x1f60e;Linux线程安全&#x1f60a;原子性&互斥&#x1f923;mutex&#x1f60a;互斥量初始化&#x1f64c;互斥量销毁&#x1f64c;互斥量加锁&#x1f64c;互斥量解锁&#x1f64c; 互斥量原理&#x1f60a;锁的申请&#x1f64c; 线程安全&#x1f9…

Java --- springboot2之文件上传

目录 一、文件上传 二、自动配置原理 一、文件上传 <form role"form" th:action"{/upload}" method"post" enctype"multipart/form-data"><div class"form-group"><label for"exampleInputEmail1&quo…

VUE 学习笔记(二)VUE的深入理解

一、VUE 简介 1.什么是VUE ? VUE 是一套用于构建用户界面的渐进式JavaScript框架 &#xff0c;对于简单应用&#xff0c;只需要轻量小巧的核心库&#xff0c;对于复杂的应用&#xff0c;可以引入各种VUE 插件。 模板引擎是 Vue 里最主要、最核心的一个能力&#xff0c;在模板引…

【Linux学习】多线程——线程控制 | 线程TCB

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《Linux学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 线程控制 | 线程TCB &#x1f9f0;线程控制&#x1f3b4;线程创建&#x1f3b4;线程结束&#x1…

华为eNSP综合实验学习记录

区域一&#xff1a;ISP 题目要求&#xff1a; 1、ISP区域&#xff0c;每台路由器需要指定一个环回口地址&#xff0c;所有设备之间互联使用/30网段&#xff0c;server1服务器区域是有10台服务器&#xff0c;使用10.1.1.0/24网段进行划分。LSW1是一台OLT设备&#xff0c;连接家…

谷歌账号注册流程全攻略

谷歌账号是获取谷歌各种服务的通行证&#xff0c;包括Gmail、Google Drive、Google Photos、Google Maps等。拥有一个谷歌账号可以让你的数字生活变得更加便捷。下面我们一起来看看谷歌账号的注册流程。 一、访问谷歌账号注册页面 首先&#xff0c;你需要访问谷歌账号注册页面…