React UI框架Antd 以及 如何按需引入css样式配置(以及过程中各种错误处理方案)

一、react UI框架Antd使用

1.下载模块

npm install antd -S

2.引入antd的样式

@import '../node_modules/antd/dist/reset.css';

3.局部使用antd组件

import {Button, Calendar} from 'antd';
import {PieChartTwoTone} from '@ant-design/icons';
{/* 组件汉化配置 */}
import locale from 'antd/lib/calendar/locale/zh_CN';
<Calendar locale={locale} cellRender={ cellRender } />
<Button>antd按钮-默认</Button>
<Button type='primary'>antd按钮-主要</Button>
<Button type='primary' danger>antd按钮-危险</Button>
{/* 内嵌样式直接修改 */}
<Button type='dashed' danger style={{border:'1px dashed #78bd70'}} >antd按钮-dashed危险</Button>
<Button type='link' danger >antd按钮-link危险</Button>
<Button type='text' danger >antd按钮-text危险</Button>
<PieChartTwoTone twoToneColor="#eb2f96" spin={true} style={{fontSize:'50px'}}/>// 在index.js中配置汉化语音包
// 汉化 语言包 4.0
npm install moment -S
import moment from 'moment';
import 'moment/locale/zh-cn';
moment.locale('zh-cn');
// 汉化 语言包 5.0
import dayjs from 'dayjs';
import 'dayjs/locale/zh-cn';
dayjs.locale('zh-cn');

4.对应项目模块版本

node18.0.0

antd5.14.2 

二、antd如何按需引入css样式以及配置

原因:上面是加载了全部的antd样式,对前端性能有隐患,所以需要antd按需引入css样式配置

1.下载指定版本插件

yarn add react-app-rewired@2.0.2-next.0

2.由于上一步可能会报下面的错,需要修改node版本,更改node版本为14.15.0或16.10.0或>=18.0.0才可以下载react-app-rewired指定模块插件

3.package.json文件修改,将react-script改为react-app-rewired

"scripts": {"start": "react-app-rewired start","build": "react-app-rewired build","test": "react-app-rewired test --env=jsdom","eject": "react-app-rewired eject"// "start": "react-scripts start",// "build": "react-scripts build",// "test": "react-scripts test",// "eject": "react-scripts eject"}

4.在项目根目录创建config-overvides.js文件用来修改默认配置

module.exports = function override(config, env) {// 使用 webpack 配置做一些事情...return config;
};

5.安装插件

yarn add babel-plugin-import// 是一个用于按需加载组件代码和样式的babel插件
yarn add customize-cra -S
yarn add less@3.11.1 less-loader@5 -S

6.修改config-overvides.js文件为下面代码

const { override, fixBabelImports, addLessLoader } = require('customize-cra');
module.exports = override(// 针对antd 实现按需打包:根据import来打包 (使用babel-plugin-import)fixBabelImports('import',{libraryName:'antd',libraryDirectory:'es',style:true,//自动打包相关的样式 默认为 style:'css'}),// 使用less-loader对源码重的less的变量进行重新制定,设置antd自定义主题addLessLoader({javascriptEnabled: true,modifyVars:{'@primary-color':'#1DA57A'},})
);

7.注释掉以下的配置,这时候直接引入组件就有对应的css,无需全局引入

@import '../node_modules/antd/dist/reset.css';

 8.重新启动项目

npm start

三、启动时的报错 以及 启动成功后代码中的一些报错以及解决方案

1.代码中报错

Parsing error: Unexpected token <eslint

Parsing error: Unexpected token =eslint 

原因:开发环境与esLint当前的解析功能不兼容导致的

解决方案:

1.下载依赖
npm i babel-eslint -S
2.在.eslintrc.js文件加上parse: 'babel-eslint'
module.exports = { parse: 'babel-eslint',parserOptions: { "ecmaVersion": 7,"sourceType": "module"}
}

2.启动时报各种依赖错误 

Cannot find module 'mini-css-extract-plugin'

Cannot find module 'style-loader'

Cannot find module 'css-loader'

原因:这是未下载依赖的报错,并且下载依赖时关于版本的兼容也很重要,我们需要先查询依赖的版本,指定版本去下载

关于如何去查找依赖版本?

(1)先查看依赖的所有历史版本

npm view style-loader versions

(2)查看指定依赖版本 需要的其他依赖版本

npm view style-loader@2.0.0 peerDependencies

从上面可知,style-loader2.0.0版本支持webpack4.0.0和webpack5.0.0,其他的以此类推,来处理依赖的报错问题。

(3)然后根据指定的版本去下载依赖:

npm i style-loader@2.0.0 -S
npm i webpack@5.0.0 -S

 项目中package.json中依赖版本配置参考:

 "dependencies": {"@testing-library/jest-dom": "^5.17.0","@testing-library/react": "^13.4.0","@testing-library/user-event": "^13.5.0","antd": "^5.14.2","babel-eslint": "^10.1.0","babel-plugin-import": "^1.13.8","css-loader": "^5.0.0","customize-cra": "^1.0.0","less": "^4.0.0","less-loader": "^7.3.0","mini-css-extract-plugin": "^2.8.1","moment": "^2.30.1","postcss": "^8.0.1","postcss-loader": "^5.0.0","react": "^18.2.0","react-app-rewired": "^2.2.1","react-dom": "^18.2.0","react-scripts": "5.0.1","style-loader": "^2.0.0","styled-components": "^6.1.8","web-vitals": "^2.1.4","webpack": "^5.0.0"}

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

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

相关文章

AWS S3上传下载

目录 1. 本地&#xff08;Ubuntu&#xff09;安装AWS客户端工具 1.1 检查Python依赖 1.2. 使用pip安装AWS CLI&#xff1a; 1.3. 检查文件版本 2. 配置AWS client 3. 上传下载 3.1. 上传 3.2. 下载 3.3. 查看目标目录的文件&#xff08;文件夹&#xff09;数…

【Java设计模式】四、适配器模式

文章目录 1、适配器模式2、举例 1、适配器模式 适配器模式Adapter Pattern&#xff0c;是做为两个不兼容的接口之间的桥梁目的是将一个类的接口转换成客户希望的另外一个接口适配器模式可以使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 最后&#xff0c;适配器…

Javase补充-Arrays类的常用方法汇总

文章目录 一 . 排序方法二 . 查找方法三 . 判断是否相等的方法四 . 拷贝方法五 . 填充方法 一 . 排序方法 我们第一个要介绍的就是sort方法 这个排序实现的底层逻辑应该是十分复杂的,以我们目前的水平体系应该无法理解,我们今天尝试用我们可以理解的一种排序算法,插入排序来模…

DEPART: Replica Decoupling for Distributed Key-Value Storage——论文泛读

FAST 2022 Paper 论文阅读笔记整理 问题 现代分布式KV存储通过在节点之间分发KV对的副本来采用复制以实现容错。然而&#xff0c;现有的分布式KV存储通常在同一索引结构中管理所有副本&#xff0c;例如LSM-Tree&#xff0c;从而导致复制冗余之外的大量I/O成本。 本文方法 提…

基于FastJson实现Json数据文件导入导出解析

哈喽&#xff0c;大家好&#xff0c;我是灰小猿&#xff0c;一个超会写bug的程序猿&#xff01; 今天来记录一个在项目实战中比较实用的方法&#xff0c;主要是针对一些需要存在简单数据文件导入导出的场景&#xff0c;如&#xff1a;数据文件的简单备份、软件升版前后配置导入…

全量知识系统问题及SmartChat给出的答复 之5

Q15. 支持前端&#xff08;知识表征&#xff09;的自然语言能力 需要一个 元语言注释工具 以及两个库&#xff08;叙词库和语料库&#xff09;和主题词表。请 1)设计 两个库和主题词表的结构 &#xff0c;2&#xff09;分别设计它们的接口&#xff0c;3&#xff09;通过调用它们…

dms深层肌肉刺激仪进口和国产的区别大吗?

DMS深层肌肉刺激仪&#xff08;Deep Muscle Stimulator&#xff09;通常被用于物理治疗和康复中&#xff0c;以及在运动训练领域中。国产和进口DMS深层肌肉刺激仪在本质上可能没有太大的差别&#xff0c;但主要有以下两点区别&#xff1a; 选用材料&#xff1a; DMS深层肌肉刺激…

GIT问题记录

一、 1.Gitee相关 复现步骤&#xff1a;自己在gitee上使用WEB解决冲突&#xff0c;本地未拉取最新的origin分支&#xff0c;然后本地也做了其他的修改&#xff0c;然后commit并且push&#xff0c;push时候报错&#xff0c;本地分支不干净 尝试拉取origin的最新内容&#xff…

游戏服务之会话管理

会话的概念与作用 游戏服务器 Session(会话)是指在游戏服务器和客户端之间建立的一个临时的连接。它可以用于存储和管理用户的游戏状态和信息。 当用户登录游戏时,服务器会为该用户创建一个 Session,可用于记录用户的登录状态、角色信息等个人信息。服务器会为每个会话分…

禁止safari浏览器网页双击缩放功能

普通浏览器 普通浏览器&#xff0c;只需要增加meta标签禁止缩放功能就行了 <meta content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalable0;" name"viewport" /> user-scalableno或0 //禁止双指缩放页面initial-scale1.0…

C++之std::vector

容器vector是一个可以改变大小的动态数组。 序列容器中的元素按严格的线性顺序排序。单个元素通过它们在此序列中的位置进行访问动态数组允许直接访问序列中的任何元素&#xff0c;甚至通过指针算术&#xff0c;并在序列末尾提供相对快速的元素添加/删除。 如何定义和初始化动…

【喜讯】优积科技CEO刘其东当选第十届杨浦区科协常委委员!

2023年09月21日&#xff0c;上海市杨浦区科学技术协会第十次代表大会于杨浦区人民政府机关2号楼四楼礼堂隆重召开&#xff01;公司CEO刘其东、COO周兴文、CPO胡艳玲、PM何壮志等来自全区各界的近三百名科技工作者代表参加会议。 大会现场 上海市杨浦区委书记薛侃&#xff0c;上…

CVE CNVD CNNVD

CVE 英文全称是“Common Vulnerabilities & Exposures” 通用漏洞披露。CVE就好像是一个字典表&#xff0c;为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。使用一个共同的名字&#xff0c;可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中…

Flutter中高级JSON处理:使用json_serializable进行深入定制

Flutter中高级JSON处理 使用json_serializable库进行深入定制 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/1363…

针对KZG承诺和高效laconic OT的extractable witness encryption

1. 引言 2024年以太坊基金会等成员论文 Extractable Witness Encryption for KZG Commitments and Efficient Laconic OT&#xff0c;开源代码实现见&#xff1a; https://github.com/rot256/research-we-kzg&#xff08;Rust&#xff09; 在该论文中&#xff0c;提供了一种…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(八)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型&#xff0c;由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”&#xff08;そら sora&#xff09;&#xff0c;即天空之意&#xff0c;以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

5G-A,未来已来

目前&#xff0c;全国首个5G-A规模组网示范完成。这项由北京联通携手华为共同打造的示范项目&#xff0c;实现了北京市中心金融街、历史建筑长话大楼、大型综合性体育场北京工人体育场三个重点场景的连片覆盖。 实际路测结果显示&#xff0c;5G-A用户下行峰值速率达到10Gbps&am…

了解docker与k8s

随着 k8s 作为容器编排解决方案变得越来越流行&#xff0c;有些人开始拿 Docker 和 k8s 进行对比&#xff0c;不禁问道&#xff1a;Docker 不香吗&#xff1f; k8s 是 kubernetes 的缩写&#xff0c;8 代表中间的八个字符。 其实 Docker 和 k8s 并非直接的竞争对手两者相互依存…

安装使用zookeeper

先去官网下载zookeeper&#xff1a;Apache ZooKeeper 直接进入bin目录&#xff0c;使用powerShell打开。 输入: ./zkServer.cmd 命令&#xff0c;启动zookeeper。 zookeeper一般需要配合Dubbo一起使用&#xff0c;作为注册中心使用&#xff0c;可以参考另一篇博客&#xf…

300分钟吃透分布式缓存-17讲:如何理解、选择并使用Redis的核心数据类型?

Redis 数据类型 首先&#xff0c;来看一下 Redis 的核心数据类型。Redis 有 8 种核心数据类型&#xff0c;分别是 &#xff1a; & string 字符串类型&#xff1b; & list 列表类型&#xff1b; & set 集合类型&#xff1b; & sorted set 有序集合类型&…