Ant Design的爬坑之路(一)

antd的安装以及webpackantd按需引入配置

注:本篇文章笔者主要讲一下基于React官方脚手架创建项目后,如何按需引入antd,和如何使用antd的定制主题,仅限于使用层面,本系列文章适合初涉antd的使用者。

安装antd

  • 使用create-react-app脚手架创建项目
  • 通过yarn add antd安装antd(mac本需要在前面加sudo)

antd的按需引入

import React from 'react';
import ReactDOM from 'react-dom';
import { LocaleProvider, DatePicker, message } from 'antd';
// 由于 antd 组件的默认文案是英文,所以需要修改为中文
import zhCN from 'antd/lib/locale-provider/zh_CN';
import moment from 'moment';
import 'moment/locale/zh-cn';

moment.locale('zh-cn');

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      date: '',
    };
  }
  handleChange(date) {
    message.info('您选择的日期是: ' + (date ? date.toString() : ''));
    this.setState({ date });
  }
  render() {
    return (
      <LocaleProvider locale={zhCN}>
        <div style={{ width: 400, margin: '100px auto' }}>
          <DatePicker onChange={value => this.handleChange(value)} />
          <div style={{ marginTop: 20 }}>当前日期:{this.state.date && this.state.date.toString()}</div>
        </div>
      </LocaleProvider>
    );
  }
}

ReactDOM.render(<App />, document.getElementById('root'));
复制代码
  • 不难发现我们的页面中并没有把antd的样式引入,此时聪明的你一定会想到在页面中直接把antd的样式引入

即插入import 'antd/dist/antd.css',但是这样引入的话我们是不是就把一些没用到的样式也引入了呢?

  • 那么有没有方法让我们不用加这一行代码,直接在引入组件的时候就把样式带上呢?并且还仅仅引入了我们用到的样式呢?当然答案是肯定的,话不多说,我们直接上干货

如何配置

  • 通过yarn add less less-loader安装lessless-loader(lessless-loader我就不做过多的解释了)
  • 通过yarn add babel-plugin-import 安装babel-plugin-import
  • 通过yarn eject 暴露出webpack的配置文件
  • config文件夹下的webpack.config.dev.jswebpack.config.prod.js文件中配置less
  • 配置antd的样式按需引入
  • 删除我们插入的import 'antd/dist/antd.css,重启我们的项目,你一定会发现页面上会报下图所示的错误
  • 我们重新安装less,注意:此时我们不要安装最新版本,通过yarn add less@2.7.3安装2.7.3版本的less
  • 成功后重启我们的项目,此时时刻你就会发现页面上已经成功引入了antd的样式。

antd定制主题

  • 官方文档中也对定制主题做了描述,但是亲测并没有效果(可能是笔者的使用方法错误,若您有更好的方法,欢迎评论或者私信,共同进步),笔者推荐如下方法,在webpack.config.dev.jswebpack.config.prod.js中配置

写在最后

第一次发表,之后陆续会更新antd的一系列,文章涉及的问题都是曾经困扰笔者的一些坑,目的是为了让一些初涉antd的朋友们可以少走弯路,如果大家有什么意见欢迎留言或私信。

转载于:https://juejin.im/post/5b77fb7ee51d4538c021d426

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值