Files
ant-design/docs/getting-started.html
T
2015-09-07 12:31:02 +08:00

642 lines
26 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<meta name="description" content="一个 UI 设计语言"/>
<title>
快速上手 - Ant Design
</title>
<link rel="icon" href="https://t.alipayobjects.com/images/T1QUBfXo4fXXXXXXXX.png" type="image/x-icon">
<link rel="shortcut icon" href="https://t.alipayobjects.com/images/T1QUBfXo4fXXXXXXXX.png" type="image/x-icon">
<link rel="stylesheet" href="/dist/antd-0.9.0-beta3.min.css">
<link rel="stylesheet" href="/static/style.css">
<link rel="stylesheet" href="/static/tomorrow.css">
<script>
(function (con) {
'use strict';
var prop, method;
var empty = {};
var dummy = function () {
};
var properties = 'memory'.split(',');
var methods = ('assert,clear,count,debug,dir,dirxml,error,exception,group,' +
'groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,' +
'show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn').split(',');
while (prop = properties.pop()) {
con[prop] = con[prop] || empty;
}
while (method = methods.pop()) {
con[method] = con[method] || dummy;
}
})(this.console = this.console || {});
</script>
<script src="https://a.alipayobjects.com/??bluebird/2.9.30/bluebird.js,jquery/jquery/1.11.1/jquery.js,es5-shim/4.1.10/es5-shim.js,es5-shim/4.1.10/es5-sham.js,html5shiv/3.7.2/src/html5shiv.js,react/0.13.3/react.js"></script>
<script>
var ANT_COMPONENTS = [];
ANT_COMPONENTS.push({
title: 'Notification',
desc: '通知提醒框'
});
ANT_COMPONENTS.push({
title: 'Affix',
desc: '固钉'
});
ANT_COMPONENTS.push({
title: 'Badge',
desc: '徽标数'
});
ANT_COMPONENTS.push({
title: 'Breadcrumb',
desc: '面包屑'
});
ANT_COMPONENTS.push({
title: 'Button',
desc: '按钮'
});
ANT_COMPONENTS.push({
title: 'Carousel',
desc: '走马灯'
});
ANT_COMPONENTS.push({
title: 'Checkbox',
desc: '多选框'
});
ANT_COMPONENTS.push({
title: 'Collapse',
desc: '折叠面板'
});
ANT_COMPONENTS.push({
title: 'Datepicker',
desc: '日期选择框'
});
ANT_COMPONENTS.push({
title: 'Dropdown',
desc: '下拉菜单'
});
ANT_COMPONENTS.push({
title: 'EnterAnimation',
desc: '进场动画'
});
ANT_COMPONENTS.push({
title: 'Form',
desc: '表单'
});
ANT_COMPONENTS.push({
title: 'Iconfont',
desc: '字体图标'
});
ANT_COMPONENTS.push({
title: 'InputNumber',
desc: '数字输入框'
});
ANT_COMPONENTS.push({
title: 'Layout',
desc: '布局'
});
ANT_COMPONENTS.push({
title: 'Menu',
desc: '导航菜单'
});
ANT_COMPONENTS.push({
title: 'Message',
desc: '全局提示'
});
ANT_COMPONENTS.push({
title: 'Modal',
desc: '对话框'
});
ANT_COMPONENTS.push({
title: 'Alert',
desc: '警告提示'
});
ANT_COMPONENTS.push({
title: 'Pagination',
desc: '分页'
});
ANT_COMPONENTS.push({
title: 'Popconfirm',
desc: '气泡确认框'
});
ANT_COMPONENTS.push({
title: 'Popover',
desc: '气泡卡片'
});
ANT_COMPONENTS.push({
title: 'Progress',
desc: '进度条'
});
ANT_COMPONENTS.push({
title: 'Radio',
desc: '单选框'
});
ANT_COMPONENTS.push({
title: 'Select',
desc: '选择器'
});
ANT_COMPONENTS.push({
title: 'Slider',
desc: '滑动输入条'
});
ANT_COMPONENTS.push({
title: 'Steps',
desc: '步骤条'
});
ANT_COMPONENTS.push({
title: 'Switch',
desc: '开关'
});
ANT_COMPONENTS.push({
title: 'Table',
desc: '表格'
});
ANT_COMPONENTS.push({
title: 'Tabs',
desc: '标签页'
});
ANT_COMPONENTS.push({
title: 'Tag',
desc: '标签'
});
ANT_COMPONENTS.push({
title: 'Timeline',
desc: '时间轴'
});
ANT_COMPONENTS.push({
title: 'Tooltip',
desc: '文字提示'
});
ANT_COMPONENTS.push({
title: 'Tree',
desc: '树形控件'
});
ANT_COMPONENTS.push({
title: 'Upload',
desc: '文件上传'
});
ANT_COMPONENTS.push({
title: 'Validation',
desc: '表单校验'
});
</script>
<script src="/static/script.js"></script>
<script>
window.antdVersion = {
latest: '0.9.0-beta3',
stable: '0.8.0'
};
</script>
<script src="/dist/antd-0.9.0-beta3.min.js"></script>
<script src="/dist/demo.js"></script>
<script>
window.require = function (path) {
var result = window;
var namespaces = path.split('/');
namespaces.forEach(function (key, i) {
if (i !== 0 && i === namespaces.length - 1) {
key = capitalizeFirstLetter(key);
}
if (key !== 'lib') {
if (result[key]) {
result = result[key];
} else {
throw 'There should not have modules here 2.';
}
}
});
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
return result;
};
</script>
</head>
<body >
<header id="header" class="clearfix">
<a class="logo" href="/">
<img width="60" src="https://t.alipayobjects.com/images/rmsweb/T1B9hfXcdvXXXXXXXX.svg">
Ant Design
</a>
<div class="search">
<div id="autoComplete"></div>
</div>
<nav class="nav">
<span class="bar"></span>
<ul>
<li class="">
<a href="/">首页</a>
</li>
<li class="">
<a href="/spec/introduce">设计</a>
</li>
<li>
<a class="nav-link-disabled" href="">案例</a>
</li>
<li class="current">
<a href="/docs/introduce">React</a>
</li>
<li>
<a target="_blank" href="https://github.com/ant-design/ant-design">Github</a>
</li>
</ul>
</nav>
<div class="nav-phone-icon"></div>
</header>
<div class="main-wrapper">
<aside class="aside-container">
<ul>
<li class="">
<a href="introduce" class="">
Ant Design of React
<span class="chinese"></span>
</a>
</li>
<li class="current">
<a href="getting-started" class="">
快速上手
<span class="chinese"></span>
</a>
</li>
<li class="">
<a href="download" class="">
下载
<span class="chinese"></span>
</a>
</li>
<li class="">
<a href="../changelog" class="">
更新日志
<span class="chinese"></span>
</a>
</li>
<li open="open">
<h4>Components</h4>
<ul class="">
<li class="type-divider">基本</li>
<li class="">
<a href="../components/button/" class="">
Button
<span class="chinese">按钮</span>
</a>
</li>
<li class="">
<a href="../components/iconfont/" class="">
Iconfont
<span class="chinese">字体图标</span>
</a>
</li>
<li class="">
<a href="../components/layout/" class="">
Layout
<span class="chinese">布局</span>
</a>
</li>
<li class="type-divider">表单</li>
<li class="">
<a href="../components/checkbox/" class="">
Checkbox
<span class="chinese">多选框</span>
</a>
</li>
<li class="">
<a href="../components/datepicker/" class="">
Datepicker
<span class="chinese">日期选择框</span>
</a>
</li>
<li class="">
<a href="../components/form/" class="">
Form
<span class="chinese">表单</span>
</a>
</li>
<li class="">
<a href="../components/input-number/" class="">
InputNumber
<span class="chinese">数字输入框</span>
</a>
</li>
<li class="">
<a href="../components/radio/" class="">
Radio
<span class="chinese">单选框</span>
</a>
</li>
<li class="">
<a href="../components/select/" class="">
Select
<span class="chinese">选择器</span>
</a>
</li>
<li class="">
<a href="../components/slider/" class="">
Slider
<span class="chinese">滑动输入条</span>
</a>
</li>
<li class="">
<a href="../components/switch/" class="">
Switch
<span class="chinese">开关</span>
</a>
</li>
<li class="">
<a href="../components/upload/" class="">
Upload
<span class="chinese">文件上传</span>
</a>
</li>
<li class="">
<a href="../components/validation/" class="">
Validation
<span class="chinese">表单校验</span>
</a>
</li>
<li class="type-divider">展示</li>
<li class="">
<a href="../components/alert/" class="">
Alert
<span class="chinese">警告提示</span>
</a>
</li>
<li class="">
<a href="../components/badge/" class="">
Badge
<span class="chinese">徽标数</span>
</a>
</li>
<li class="">
<a href="../components/carousel/" class="">
Carousel
<span class="chinese">走马灯</span>
</a>
</li>
<li class="">
<a href="../components/collapse/" class="">
Collapse
<span class="chinese">折叠面板</span>
</a>
</li>
<li class="">
<a href="../components/dropdown/" class="">
Dropdown
<span class="chinese">下拉菜单</span>
</a>
</li>
<li class="">
<a href="../components/message/" class="">
Message
<span class="chinese">全局提示</span>
</a>
</li>
<li class="">
<a href="../components/modal/" class="">
Modal
<span class="chinese">对话框</span>
</a>
</li>
<li class="">
<a href="../components/notification/" class="">
Notification
<span class="chinese">通知提醒框</span>
</a>
</li>
<li class="">
<a href="../components/popconfirm/" class="">
Popconfirm
<span class="chinese">气泡确认框</span>
</a>
</li>
<li class="">
<a href="../components/popover/" class="">
Popover
<span class="chinese">气泡卡片</span>
</a>
</li>
<li class="">
<a href="../components/progress/" class="">
Progress
<span class="chinese">进度条</span>
</a>
</li>
<li class="">
<a href="../components/table/" class="">
Table
<span class="chinese">表格</span>
</a>
</li>
<li class="">
<a href="../components/tag/" class="">
Tag
<span class="chinese">标签</span>
</a>
</li>
<li class="">
<a href="../components/timeline/" class="">
Timeline
<span class="chinese">时间轴</span>
</a>
</li>
<li class="">
<a href="../components/tooltip/" class="">
Tooltip
<span class="chinese">文字提示</span>
</a>
</li>
<li class="">
<a href="../components/tree/" class="">
Tree
<span class="chinese">树形控件</span>
</a>
</li>
<li class="type-divider">导航</li>
<li class="">
<a href="../components/breadcrumb/" class="">
Breadcrumb
<span class="chinese">面包屑</span>
</a>
</li>
<li class="">
<a href="../components/menu/" class="">
Menu
<span class="chinese">导航菜单</span>
</a>
</li>
<li class="">
<a href="../components/pagination/" class="">
Pagination
<span class="chinese">分页</span>
</a>
</li>
<li class="">
<a href="../components/steps/" class="">
Steps
<span class="chinese">步骤条</span>
</a>
</li>
<li class="">
<a href="../components/tabs/" class="">
Tabs
<span class="chinese">标签页</span>
</a>
</li>
<li class="type-divider">其他</li>
<li class="">
<a href="../components/affix/" class="">
Affix
<span class="chinese">固钉</span>
</a>
</li>
<li class="">
<a href="../components/enter-animation/" class="">
EnterAnimation
<span class="chinese">进场动画</span>
</a>
</li>
</ul>
</li>
</ul>
</aside>
<section class="main-container">
<article class="markdown">
<h1>快速上手 </h1>
<p>Ant Design React 致力于提供给程序员愉悦的开发体验。</p>
<h2 id="第一个例子">第一个例子</h2><p>我们封装了一套基于 React 实现的 UI 组件,可以用 React 的方式直接使用。</p>
<p>下面有一个使用了 <a href="http://ant.design/components/datepicker">日期选择</a> 组件的简单例子。</p>
<iframe width="100%" height="380" src="//jsfiddle.net/afc163/6k22tgpx/4/embedded/result,html" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
<p>源码如下:</p>
<div class="highlight"><pre><code class="xml"><span class="doctype">&lt;!DOCTYPE html&gt;</span>
<span class="tag">&lt;<span class="title">html</span>&gt;</span>
<span class="tag">&lt;<span class="title">head</span>&gt;</span>
<span class="tag">&lt;<span class="title">meta</span> <span class="attribute">charset</span>=<span class="value">"utf-8"</span>&gt;</span>
<span class="comment">&lt;!-- 引入样式 --&gt;</span>
<span class="tag">&lt;<span class="title">link</span> <span class="attribute">rel</span>=<span class="value">"stylesheet"</span> <span class="attribute">href</span>=<span class="value">"http://ant.design/dist/antd.css"</span>&gt;</span>
<span class="comment">&lt;!-- 引入 react 和 antd.js --&gt;</span>
<span class="tag">&lt;<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"https://a.alipayobjects.com/??jquery/jquery/1.11.1/jquery.js,react/0.13.3/react.min.js,react/0.13.3/JSXTransformer.js"</span>&gt;</span><span class="javascript"></span><span class="tag">&lt;/<span class="title">script</span>&gt;</span>
<span class="tag">&lt;<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"http://ant.design/dist/antd.js"</span>&gt;</span><span class="javascript"></span><span class="tag">&lt;/<span class="title">script</span>&gt;</span>
<span class="tag">&lt;/<span class="title">head</span>&gt;</span>
<span class="tag">&lt;<span class="title">body</span>&gt;</span>
<span class="tag">&lt;/<span class="title">body</span>&gt;</span>
<span class="comment">&lt;!-- 直接调用全局变量 --&gt;</span>
<span class="tag">&lt;<span class="title">script</span> <span class="attribute">type</span>=<span class="value">"text/jsx"</span>&gt;</span><span class="javascript">
React.render(<span class="xml"><span class="tag">&lt;<span class="title">antd.Datepicker</span> /&gt;</span>, document.body);
</span></span><span class="tag">&lt;/<span class="title">script</span>&gt;</span>
<span class="tag">&lt;/<span class="title">html</span>&gt;</span></code></pre></div><p>你可以在 <a href="/components/progress/">这里</a> 选用更多组件。</p>
<h2 id="标准项目">标准项目</h2><p>实际项目开发中,你会需要 CommonJS 、JSX 构建、打包部署等一系列工程化的需求。
提供了一套 <code>npm</code> + <code>webpack</code> 的开发工具链来辅助开发,下面我们用一个简单的实例来说明。</p>
<h3 id="1-安装命令行工具">1. 安装命令行工具</h3><div class="highlight"><pre><code class="bash">$ npm install antd-bin -g</code></pre></div><p><a href="https://github.com/ant-design/antd-bin#使用说明">更多使用说明</a></p>
<h3 id="2-创建一个项目">2. 创建一个项目</h3><p>使用命令行进行初始化。</p>
<div class="highlight"><pre><code class="bash">$ mkdir antd-demo &amp;&amp; <span class="built_in">cd</span> antd-demo
$ antd init
$ npm install</code></pre></div><h3 id="3-使用组件">3. 使用组件</h3><p>编辑 <code>index.js</code>,使用 Ant Design React 的组件:</p>
<div class="highlight"><pre><code class="javascript">import React from <span class="string">'react'</span>;
import { Datepicker, message } from <span class="string">'antd'</span>;
<span class="keyword">var</span> App = React.createClass({
getInitialState() {
<span class="keyword">return</span> {
date: <span class="string">''</span>
};
},
handleChange(value) {
message.info(<span class="string">'您选择的日期是: '</span> + value.toString());
<span class="keyword">this</span>.setState({
date: value
});
},
render() {
<span class="keyword">return</span> <span class="xml"><span class="tag">&lt;<span class="title">div</span> <span class="attribute">style</span>=<span class="value">{{width:</span> <span class="attribute">400</span>, <span class="attribute">margin:</span> '<span class="attribute">100px</span> <span class="attribute">auto</span>'}}&gt;</span>
<span class="tag">&lt;<span class="title">Datepicker</span> <span class="attribute">onSelect</span>=<span class="value">{this.handleChange}</span> /&gt;</span>
<span class="tag">&lt;<span class="title">div</span> <span class="attribute">style</span>=<span class="value">{{marginTop:</span> <span class="attribute">20</span>}}&gt;</span>当前日期:{this.state.date.toString()}<span class="tag">&lt;/<span class="title">div</span>&gt;</span>
<span class="tag">&lt;/<span class="title">div</span>&gt;</span>;</span>
}
});
React.render(<span class="xml"><span class="tag">&lt;<span class="title">App</span> /&gt;</span>, document.body);</span></code></pre></div><blockquote>
<p><code>var Datepicker = require(&#39;antd/lib/datepicker&#39;)</code> 单独引入需要的组件文件可以有效减少最终构建文件的大小。</p>
<p><code>lib</code> 即构建后的 <code>components</code> 目录。</p>
</blockquote>
<p>然后建一个页面用于开发。</p>
<div class="highlight"><pre><code class="bash">$ touch index.html</code></pre></div><p>编辑 <code>index.html</code> 如下:</p>
<div class="highlight"><pre><code class="xml"><span class="doctype">&lt;!DOCTYPE html&gt;</span>
<span class="tag">&lt;<span class="title">html</span>&gt;</span>
<span class="tag">&lt;<span class="title">head</span>&gt;</span>
<span class="tag">&lt;<span class="title">meta</span> <span class="attribute">charset</span>=<span class="value">"utf-8"</span>&gt;</span>
<span class="comment">&lt;!-- 引入样式 --&gt;</span>
<span class="tag">&lt;<span class="title">link</span> <span class="attribute">rel</span>=<span class="value">"stylesheet"</span> <span class="attribute">href</span>=<span class="value">"/index.css"</span>&gt;</span>
<span class="tag">&lt;<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"https://a.alipayobjects.com/??jquery/jquery/1.11.1/jquery.js,react/0.13.3/react.min.js"</span>&gt;</span><span class="javascript"></span><span class="tag">&lt;/<span class="title">script</span>&gt;</span>
<span class="tag">&lt;/<span class="title">head</span>&gt;</span>
<span class="tag">&lt;<span class="title">body</span>&gt;</span>
<span class="tag">&lt;/<span class="title">body</span>&gt;</span>
<span class="comment">&lt;!-- 引入入口文件 --&gt;</span>
<span class="tag">&lt;<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"/index.js"</span>&gt;</span><span class="javascript"></span><span class="tag">&lt;/<span class="title">script</span>&gt;</span>
<span class="tag">&lt;/<span class="title">html</span>&gt;</span></code></pre></div><h3 id="4-开发调试">4. 开发调试</h3><p>一键启动调试,访问 <a href="http://127.0.0.1:8000">http://127.0.0.1:8000</a> 查看效果。</p>
<div class="highlight"><pre><code class="bash">$ npm run dev</code></pre></div><h3 id="5-构建和部署">5. 构建和部署</h3><div class="highlight"><pre><code class="bash">$ npm run build</code></pre></div><p>入口文件会构建到 <code>dist</code> 目录中,你可以自由部署到不同环境中进行引用。</p>
<blockquote>
<p>上述例子用于帮助你理解 Ant Design React 的使用流程,并非真实的开发过程,你可以根据自己的项目开发流程进行接入。</p>
</blockquote>
<h2 id="兼容性">兼容性</h2><p>Ant Design React 支持所有的现代浏览器和 IE8+。</p>
<p>对于 IE8,需要提供 <a href="http://facebook.github.io/react/docs/working-with-the-browser.html#browser-support-and-polyfills">es5-shim</a> 等 Polyfills 的支持。</p>
<div class="highlight"><pre><code class="xml"><span class="doctype">&lt;!DOCTYPE html&gt;</span>
<span class="tag">&lt;<span class="title">html</span>&gt;</span>
<span class="tag">&lt;<span class="title">head</span>&gt;</span>
<span class="tag">&lt;<span class="title">meta</span> <span class="attribute">charset</span>=<span class="value">"utf-8"</span>&gt;</span>
<span class="comment">&lt;!-- 引入样式 --&gt;</span>
<span class="tag">&lt;<span class="title">link</span> <span class="attribute">rel</span>=<span class="value">"stylesheet"</span> <span class="attribute">href</span>=<span class="value">"http://ant.design/dist/antd.css"</span>&gt;</span>
<span class="comment">&lt;!-- Polyfills --&gt;</span>
<span class="tag">&lt;<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"https://a.alipayobjects.com/??es5-shim/4.1.10/es5-shim.min.js,es5-shim/4.1.10/es5-sham.min.js,html5shiv/3.7.2/src/html5shiv.js"</span>&gt;</span><span class="javascript"></span><span class="tag">&lt;/<span class="title">script</span>&gt;</span>
<span class="comment">&lt;!-- 引入 jquery 和 react --&gt;</span>
<span class="tag">&lt;<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"https://a.alipayobjects.com/??jquery/jquery/1.11.1/jquery.js,react/0.13.3/react.min.js"</span>&gt;</span><span class="javascript"></span><span class="tag">&lt;/<span class="title">script</span>&gt;</span>
<span class="tag">&lt;/<span class="title">head</span>&gt;</span>
<span class="tag">&lt;<span class="title">body</span>&gt;</span>
<span class="tag">&lt;/<span class="title">body</span>&gt;</span>
<span class="tag">&lt;/<span class="title">html</span>&gt;</span></code></pre></div><div class="code-line-highlight"></div>
<style>
.code-line-highlight {
box-shadow: 0 -197px 0 rgba(255, 207, 0, 0.16);
height: 42px;
margin-bottom: -42px;
}
</style>
<h2 id="小甜点">小甜点</h2><ul>
<li>你可以享用 <code>npm</code> 生态圈里的所有模块。</li>
<li>我们使用了 <code>babel</code>,试试用 <a href="http://babeljs.io/blog/2015/06/07/react-on-es6-plus/">ES6</a> 的写法来提升编码的愉悦感。</li>
</ul>
</article>
</section>
</div><footer id="footer">
<ul>
<li>
<h2>GitHub</h2>
<a target="_blank "href="https://github.com/ant-design/ant-design">仓库</a>
<a target="_blank" href="https://github.com/ant-design/ant-design/tree/master/style">样式</a>
<a target="_blank" href="https://github.com/ant-design/antd-bin">开发工具</a>
</li>
<li>
<h2>关于我们</h2>
<a href="https://github.com/alipay/x/issues">博客 - Ant UED</a>
</li>
<li>
<h2>联系我们</h2>
<a target="_blank" href="https://github.com/ant-design/ant-design/issues">问题与建议 - Issues</a>
</li>
<li>
<h3>©2015 蚂蚁金服体验技术部出品</h3>
</li>
</ul>
</footer>
</body>
</html>