搭建 React+Antd 的前端应用

使用以下命令之前,请先安装 Node.js,直接去官网下载安装即可:https://nodejs.org/

一、使用 create-react-app 初始化 React 项目

create-react-app 是业界最优秀的 React 应用开发工具之一,可以使用简单的命令完成 React 项目的初始化配置。

1. 安装

    npm install -g create-react-app yarn

2. 创建项目

    create-react-app ebs-react-demo

完成创建项目后,终端显示内容如下图所示:

3. 启动初始化好的 app

    cd ebs-react-demo
    yarn start

访问 http://localhost:3000/ 即可访问初始化好的 React 页面了。

4. 初始化好的目录结构

二、引入 antd

1. 使用 yarn 安装 antd

    yarn add antd

2. 体验 Antd

修改 src/App.js 文件如下:

    import React, {Component} from 'react';
    import {Steps} from 'antd';
    import './App.css';

    const Step = Steps.Step;

    class App extends Component {
      render() {
        return (
          <div className="App">
            <Steps current={2}>
              <Step status="finish" title="初始化项目" description="使用 create-react-app 初始化 React 项目。"/>
              <Step status="process" title="添加 Antd" description="在 React 项目中添加 Antd 组件。"/>
              <Step status="wait" title="高级配置" description="进行一些高级配置。"/>
              <Step status="wait" title="添加 React-Router" description="添加 React-Router "/>
              <Step status="wait" icon="smile-o" title="自由发挥" description="这一条只是试一下 icon"/>
            </Steps>
          </div>
        );
      }
    }
    export default App;

修改 src/App.css 文件如下:

    @import '~antd/dist/antd.css';

    .App {
        width: 800px;
        margin: 100px 0 0 100px;
    }

如果已经使用 yarn start 命令启动过服务器,直接刷新页面即可看到效果。

三、高级配置

1. 添加webpack,Babel 插件 和默认配置等

    yarn run eject

2. 配置按需加载

Antd组件很多,不是所有的组件我们都要是使用,只加载我们使用到的组件,以减小代码文件的大小

运行命令安装 babel-plugin-import 插件

    yarn add babel-plugin-import --dev

修改 webpack 配置文件,在 config 目录下,webpack.config.dev.js 是开发环境配置文件,webpack.config.prod.js 是产品发布配置文件,两份配置文件基本相同,以修改webpack.config.dev.js 为例:

找到 module.exports > module > loaders 数组的第二个元素,在 query 下添加 plugins:

// Process JS with Babel.
{
  test: /\.(js|jsx)$/,
  include: paths.appSrc,
  loader: 'babel',
  query: {
    //下面三行代码是新增的
    plugins: [
      ['import', [{libraryName: "antd", style: 'css'}]],
    ],
    // This is a feature of `babel-loader` for webpack (not Babel itself).
    // It enables caching results in ./node_modules/.cache/babel-loader/
    // directory for faster rebuilds.
    cacheDirectory: true
  }
},

接下来删除 src/App.css 文件中的下面代码删除,插件会根据需要按需加载文件。

    `@import '~antd/dist/antd.css';`
posted @ 2017-04-07 00:08  六楼的雨  阅读(33)  评论(0编辑  收藏  举报