本文基于React v16.4.1

初学react,有理解不对的地方,欢迎批评指正^_^

一、引入Ant Design

1、安装antd

yarn add antd

2、引入 react-app-rewired (一个对 create-react-app 进行自定义配置的社区解决方案)

yarn add react-app-rewired --dev

3、把 package.json 里的scripts部分改为

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

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

module.exports = function override(config, env) {
// do stuff with the webpack config...
return config;
};

5、安装babel-plugin-import(用于按需加载组件代码和样式的 babel 插件)

yarn add babel-plugin-import --dev

6、修改 config-overrides.js 文件

const { injectBabelPlugin } = require('react-app-rewired');
module.exports = function override(config, env) {
config = injectBabelPlugin(['import', { libraryName: 'antd', libraryDirectory: 'es', style: 'css' }], config);
return config;
};

二、使用Ant Design组件

1、Layout布局

Layout是布局容器,其下可嵌套 Header(顶部)、Sider(侧边栏)、Content(内容部分)、Footer(底部),也可嵌套Layout本身。

在App.js引入并使用Layout ,效果如下图(css略)

import React, { Component } from 'react';
import './App.css';
import { Layout } from 'antd';
const { Header, Footer, Sider, Content } = Layout;
class App extends Component {
render() {
return (
<Layout>
<Sider>Sider</Sider>
<Layout>
<Header>Header</Header>
<Content>Content</Content>
<Footer>Footer</Footer>
</Layout>
</Layout>
);
}
}
export default App;

  2、Menu导航菜单

    *Menu有很多参数,下面用到的有:

      theme:主题,可选light、dark;

      defaultSelectedKeys:初始选中的菜单项 key 数组;

      mode:菜单类型,可选 vertical、vertical-right、horizontal、inline,分别是垂直左、垂直右、水平、内嵌。

    *Menu.Item是Menu的子项,key 是 item 的唯一标志。

    *SubMenu是子菜单,用到的参数有:

      key:唯一标志;

      title:子菜单项值。

    • 写一个垂直菜单(要先引入Menu组件)

      renderSiderMenu(){
      return(
      <Menu theme="dark" defaultSelectedKeys={['']} mode="inline">
      <Menu.Item key="">
      <Icon type="pie-chart" />
      <span>Option </span>
      </Menu.Item>
      <SubMenu
      key="sub1"
      title={<span><Icon type="user" /><span>User</span></span>}
      >
      <Menu.Item key="">Tom</Menu.Item>
      <Menu.Item key="">Bill</Menu.Item>
      <Menu.Item key="">Alex</Menu.Item>
      </SubMenu>
      </Menu>
      )
      }
    • 把菜单放在Sider中

      <Sider> {this.renderSiderMenu()}</Sider>

  效果如下图:

 

其他组件的具体用法可以查看Ant Design官网示例。

END----------------------

React学习及实例开发(二)——用Ant Design写一个简单页面的更多相关文章

  1. React学习及实例开发(三)——用react-router跳转页面

    本文基于React v16.4.1 初学react,有理解不对的地方,欢迎批评指正^_^ 一.定义路由 1.安装react-router npm install react-router@ --sav ...

  2. 一起学习造轮子(二):从零开始写一个Redux

    本文是一起学习造轮子系列的第二篇,本篇我们将从零开始写一个小巧完整的Redux,本系列文章将会选取一些前端比较经典的轮子进行源码分析,并且从零开始逐步实现,本系列将会学习Promises/A+,Red ...

  3. 使用Ant Design写一个仿微软ToDo

    实习期的第一份活,自己看Ant Design的官网学习,然后用Ant Design写一个仿微软ToDo. 不做教学目的,只是记录一下. 1.学习 Ant Design 是个组件库,想要会用,至少要知道 ...

  4. React学习及实例开发(一)——开始(转载)

    https://www.cnblogs.com/MaiJiangDou/p/9245063.html#4136668 转载 一.构建一个新项目 1.命令行运行如下命令,构建一个新的react项目 np ...

  5. React学习及实例开发(一)——开始

    本文基于React v16.4.1 初学react,有理解不对的地方,欢迎批评指正^_^ 一.构建一个新项目 1.命令行运行如下命令,构建一个新的react项目 npm install -g crea ...

  6. 一起学习造轮子(一):从零开始写一个符合Promises/A+规范的promise

    本文是一起学习造轮子系列的第一篇,本篇我们将从零开始写一个符合Promises/A+规范的promise,本系列文章将会选取一些前端比较经典的轮子进行源码分析,并且从零开始逐步实现,本系列将会学习Pr ...

  7. 一起学习造轮子(三):从零开始写一个React-Redux

    本文是一起学习造轮子系列的第三篇,本篇我们将从零开始写一个React-Redux,本系列文章将会选取一些前端比较经典的轮子进行源码分析,并且从零开始逐步实现,本系列将会学习Promises/A+,Re ...

  8. laravel学习:php写一个简单的ioc服务管理容器

    php写一个简单的ioc服务管理容器 原创: 陈晨 CoderStory 2018-01-14 最近学习laravel框架,了解到laravel核心是一个大容器,这个容器负责几乎所有服务组件的实例化以 ...

  9. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

    iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...

随机推荐

  1. Ubuntu docker 使用命令 系列二

    1.下载官方远程仓下的镜像:sudo docker pull <docker 镜像> ,sudo docker pull centos (没有指定版本,就是下载的最新的os) 2. 下载某 ...

  2. 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果

    一直很纠结,Oracle的快速返回机制,虽然结果集很多,可是它能很快的显示第一个结果,虽然通过MYSQl的客户端可以做到,但是通过JDBC却不行. 今天用了1个多小时,终于搞定此问题,希望对广大Jav ...

  3. 51nod 1267 4个数和为0

    基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个整数,你来判断一下是否能够选出4个数,他们的和为0,可以则输出"Yes",否则输出&qu ...

  4. WEB前端研发工程师编程能力成长之路(2)(转)

    WEB前端研发工程师编程能力成长之路(2)   四.[入微] 最强解决方案.你能够走在需求的前面,将当前需求里有的.没有直接提出来的.现在暂时没有但将来可能有的等等,及前端编程潜规则等各个方方面面都综 ...

  5. Spring AOP源码解析——专治你不会看源码的坏毛病!

    昨天有个大牛说我啰嗦,眼光比较细碎,看不到重点.太他爷爷的有道理了!要说看人品,还是女孩子强一些. 原来记得看到一个男孩子的抱怨,说怎么两人刚刚开始在一起,女孩子在心里就已经和他过完了一辈子.哥哥们, ...

  6. 常用的-->查找算法与排序算法

    顺序查找 从列表第一个元素开始,顺序进行搜索,直到找到为止. 二分查找 从有序列表的候选区data[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一半. li = [1, 2, ...

  7. docker 深入理解之namespace

    namespace 名称空间 docker容器主要通过资源隔离来实现的,应该具有的6种资源隔 namespace 的六项隔离 namespace 系统调用参数 隔离的内容 UTS CLONE_NEWU ...

  8. U盘制作安装盘后容量不能恢复的解决方案

    diskpartlist diskselect disk 0/1 --看具体U盘是0还是1clean

  9. java登录拦截Filter

    此例子为一个简单的登录拦截. 首先在web.xml中配置拦截类. <filter-mapping> <filter-name>SessionFilter</filter- ...

  10. 在Foxmail邮件客户端登录263企业邮箱

    一.问题描述 首次用Foxmail登录263企业,输入账号和密码,创建 二.问题分析 客户端配置地址: 协议类型 服务器地址 默认端 加密端(SSL) POP pop.263.net 110 1995 ...