IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> create-react-app配置Antd自定义主题/按需导入 -> 正文阅读

[JavaScript知识库]create-react-app配置Antd自定义主题/按需导入

官方定制主题方案

Ant Design 的样式变量

antd 的样式使用了?Less?作为开发语言,并定义了一系列全局/组件的样式变量,你可以根据需求进行相应调整。以下是一些最常用的通用变量,所有样式变量可以在?这里?找到。

@primary-color: #1890ff; // 全局主色
@link-color: #1890ff; // 链接色
@success-color: #52c41a; // 成功色
@warning-color: #faad14; // 警告色
@error-color: #f5222d; // 错误色
@font-size-base: 14px; // 主字号
@heading-color: rgba(0, 0, 0, 0.85); // 标题色
@text-color: rgba(0, 0, 0, 0.65); // 主文本色
@text-color-secondary : rgba(0, 0, 0, .45); // 次文本色
@disabled-color : rgba(0, 0, 0, .25); // 失效色
@border-radius-base: 4px; // 组件/浮层圆角
@border-color-base: #d9d9d9; // 边框色
@box-shadow-base: 0 2px 8px rgba(0, 0, 0, 0.15); // 浮层阴影

自定义主题

按照?配置主题?的要求,自定义主题需要用到 less 变量覆盖功能。

我们可以使用craco(一个对create-react-app进行自定义配置的社区解决方案)。

1、安装craco。

npm i @craco/craco -D

修改 package.json 里的 scripts 属性。

"scripts": {
- ? "start": "react-scripts start",
- ? "build": "react-scripts build",
- ? "test": "react-scripts test",
+ ? "start": "craco start",
+ ? "build": "craco build",
+ ? "test": "craco test",
}

2、安装craco-less

npm i craco-less -D //less处理插件

然后在项目根目录创建一个 craco.config.js 用于修改默认配置。
?

const CracoLessPlugin = require('craco-less');

module.exports = {
    plugins: [
        {
            plugin: CracoLessPlugin,
            options: {
                lessLoaderOptions: {
                    lessOptions: {
                        modifyVars: {
                            '@primary-color': 'red', // 全局主色
                        },
                        javascriptEnabled: true,
                    },
                }
            },
        },
    ],
};

?注意还要在文件index.js 顶部引入?antd.css样式

import 'antd/dist/antd.css';

按需导入

使用 babel-plugin-import

注意:antd 默认支持基于 ES module 的 tree shaking,js 代码部分不使用这个插件也会有按需加载的效果。

babel-plugin-import?是一个用于按需加载组件代码和样式的 babel 插件(原理),现在我们尝试安装它并修改?craco.config.js?文件。

npm i babel-plugin-import -D //自动导入antd的css样式

2.2 配置

  1. 在根目录创建craco.config.js文件

const CracoLessPlugin = require('craco-less');

module.exports = {
    babel: {//支持装饰器
        plugins: [
            [
                "import",
                {
                    "libraryName": "antd",
                    "libraryDirectory": "es",
                    "style": true //设置为true即是less 用css写'css'
                }
            ]
        ]
    },

    plugins: [
        {
            plugin: CracoLessPlugin,
            options: {
                lessLoaderOptions: {
                    lessOptions: {
                        modifyVars: {
                            '@primary-color': 'red', // 全局主色
                        },
                        javascriptEnabled: true,
                    },
                }
            },
        },
    ],
};

?使用

import React from 'react'
import { Button } from 'antd';
//import 'antd/dist/antd.css';
export default function App() {

  return (
    <div>
      <Button type="primary">按钮1</Button>
      <Button type="link">按钮2</Button>
      <Button type="success">按钮3</Button>
    </div>
  )
}

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-25 23:09:08  更:2022-09-25 23:09:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:54:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码