React UI组件库

流行的开源React UI组件库

  • material-ui(国外)
  • ant-design(国内蚂蚁金服)

antd的基本使用

antd 是基于 Ant Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。

安装antd组件库:

npm install antd --save
yarn add antd

默认按需引入antd组件:

import { Button, DatePicker } from 'antd';

默认按需引入icons图标:

import { WechatOutlined, SearchOutlined } from '@ant-design/icons';

默认全部引入antd组件库样式:

import 'antd/dist/antd.css';

由于全部引入antd组件库样式,会导致文件太大,影响性能问题,所以应该按需引入。

antd样式按需引入

用到哪个组件的样式,就引入哪个组件的样式。参考文档

1.安装 react-app-rewired,customize-cra库

npm add react-app-rewired customize-cra

react-app-rewired:用于启动react脚手架(因为更新了脚手架的配置,所以不能用原来的命令启动)。

customize-cra:用于执行修改配置的命令。

2.修改package.json文件

"scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-app-rewired test",
    "eject": "react-scripts eject"
 }

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

// 配置具体的修改规则
module.exports = function override(config, env) {
  // do stuff with the webpack config...
  return config;
};

4.安装并使用 babel-plugin-import,它是一个用于按需加载组件代码和样式的 babel 插件。

npm add babel-plugin-import

5.修改 config-overrides.js 文件

// 配置具体的修改规则
const { override, fixBabelImports } = require('customize-cra');

module.exports = override(
  fixBabelImports('import', {
    libraryName: 'antd',
    libraryDirectory: 'es',
    style: 'css',
  }),
);

完成上述操作,可以移除前面在 src/App.css 里全部添加样式的代码: import 'antd/dist/antd.css'。最后重启 npm start 访问页面,antd 组件的 js 和 css 代码都会按需加载。

antd自定义主题

按照配置主题的要求,自定义主题需要用到 less 变量覆盖功能。我们可以引入 customize-cra 中提供的 less 相关的函数 addLessLoader 来帮助加载 less 样式,同时修改 config-overrides.js 文件。

1.安装less和less-loader:

npm add less@5 
npm add less-loader@5
// npm add less less-loader@5

less:想要修改less文件需要安装less。

less-loader:修改完之后编译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': 'green' },
  }),
);

这里利用了less-loader的 modifyVars 来进行主题配置,变量和其他配置方式可以参考 配置主题 文档。

修改后重启 npm start,如果看到一个绿色的按钮就说明配置成功了。

总结

到此这篇关于React UI组件库之快速实现antd的按需引入和自定义主题的文章就介绍到这了,更多相关React UI antd按需引入和自定义主题内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

React UI组件库之快速实现antd的按需引入和自定义主题的更多相关文章

  1. antd项目实现彩蛋效果的详细代码

    这篇文章主要介绍了antd项目如何实现彩蛋效果,首先在components目录下创建Transform目录,包括index.css、index.js,index.js是主要的逻辑代码,下面对代码进行分析,需要的朋友可以参考下

  2. vue项目中如何实现element-ui组件按需引入

    这篇文章主要介绍了vue项目中如何实现element-ui组件按需引入,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 手把手教你从零开始react+antd搭建项目

    本文将从最基础的项目搭建开始讲起,做一个基于react和antd的后台管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  4. 基于 antd pro 的短信验证码登录功能(流程分析)

    这篇文章主要介绍了基于 antd pro 的短信验证码登录功能(流程分析),本文通过实例代码流程分析给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

  5. react配合antd组件实现的管理系统示例代码

    这篇文章主要介绍了react配合antd组件实现的管理系统示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  6. React+Antd 实现可增删改表格的示例

    这篇文章主要介绍了React+Antd实现可增删改表格的示例,帮助大家更好的理解和学习使用React,感兴趣的朋友可以了解下

  7. 快速修改antd vue单个组件的默认样式

    这篇文章主要介绍了快速修改antd vue单个组件的默认样式方式,具有很好的参考价值,希望对大家有所帮助。

  8. 在react项目中使用antd的form组件,动态设置input框的值

    这篇文章主要介绍了在react项目中使用antd的form组件,动态设置input框的值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  9. 解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)

    这篇文章主要介绍了解决React在安装antd之后出现的Can't resolve './locale'问题,本文给大家分享解决方案,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  10. vue3+ts+echarts实现按需引入和类型界定方式

    这篇文章主要介绍了vue3+ts+echarts实现按需引入和类型界定方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部