ant Design 按需引入css样式 和 修改默认主体颜色

使用ant Design组件

import React, {
          
    Component } from react
import {
          
   Button,DatePicker} from antd
import antd/dist/antd.css
import {
          
    UpOutlined, SearchOutlined } from @ant-design/icons
const {
          
   RangePicker} = DatePicker
export default class App extends Component {
          
   
  render() {
          
   
    return (
      <div>
        App....
        <button>点我</button>
        <Button type=primary>primary Button</Button>
        <Button type=link>primary Button</Button>
        <UpOutlined />
        <Button type="primary" icon={
          
   <SearchOutlined />}>
          Search
        </Button>
        <RangePicker showTime />
      </div>
    )
  }
}

按需引入antd样式

yarn add react-app-rewired customize-cra

customize-cra 用来找到config-overrider.js来进行修改 react-app-rewired是修改package.json里的启动配置的 config-overrider.js是修改规则文件

yarn add babel-plugin-import

babel-plugin-import 是一个用于按需加载组件代码和样式的 babel 插件

config-overrider.js 文件内容

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

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

修改 package.json 文件内容

/* package.json */
"scripts": {
          
   
-   "start": "react-scripts start",
+   "start": "react-app-rewired start",
-   "build": "react-scripts build",
+   "build": "react-app-rewired build",
-   "test": "react-scripts test",
+   "test": "react-app-rewired test",
}

到这里就完成了 antd 样式的按需引入

修改默认主题颜色

antd 默认主题色为蓝色,如果要改为其他颜色,配置如下:

安装 less 和 lessloader

yarn add less less-loader@7.1.0

高版本的 less-loader 可能不支持下面配置文件的写法

配置 config-overrides.js 改为:

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": "orange" },
    },
  })
);
在 12 行中修改颜色

重启项目,就可看到主题色被更改。

总结

1.安装依赖:yarn add react-app-rewired customize-cra babel-plugin-import less less-loader
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
	//配置具体的修改规则
	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: green },
			}
		}),
	);
4.备注:不用在组件里亲自引入样式了,即:import antd/dist/antd.css’应该删掉
经验分享 程序员 微信小程序 职场和发展