通过前面的学习,你应该已经搭建完成了脚手架,并且了解了 React 的基本概念。这一节,我们就来教大家如何使用 Ant Design 组件库,完成一个卡片组件(card)。

使用 Ant Design 组件 - 图1

引入 antd

Ant Design 是一个服务于企业级产品的设计体系,组件库是它的 React 实现,antd 被发布为一个 npm 包方便开发者安装并使用。

在 umi 中,你可以通过在插件集 umi-plugin-react 中配置 antd 打开 antd 插件,antd 插件会帮你引入 antd 并实现按需编译。

  1. export default {
  2. plugins: [
  3. ['umi-plugin-react', {
  4. antd: true
  5. }],
  6. ],
  7. // ...
  8. }

如果使用我们的脚手架,Ant Design 已经自带了,否则你需要自己安装。

  1. # 脚手架所在的目录
  2. $ cnpm install --save antd

使用 antd

前面的章节中,我们已经初始化了一个基于 umi 的脚手架。你可以通过下面的方式启动它:

  1. # 实际上是执行了 umi dev
  2. $ cnpm run dev

打开浏览器,访问 http://localhost:8000/helloworld 这个网址,应该可以看到显示 hello world。

这个页面对应的源码在page/helloworld.js,已有的代码大概是下面的样子。

  1. export default () => {
  2. return <div>hello world</div>;
  3. }

下面,我们开始为这个页面引入 Ant Design 组件。首先,在页面的头部加入一行。

  1. import { Card } from 'antd';

这行代码表示从 antd 引入 Card 组件。

接着,把模块默认输出的 hello world 改成下面的样子。

  1. export default () => {
  2. const style = {
  3. width: '400px',
  4. margin: '30px',
  5. boxShadow: '0 4px 8px 0 rgba(0, 0, 0, 0.2)',
  6. border: '1px solid #e8e8e8',
  7. };
  8. return (
  9. <Card style={style} actions={[<a>操作一</a>, <a>操作二</a>]}>
  10. </Card>
  11. );
  12. }

上面代码中,我们引入了 Card 组件,并且定制了它的样式和下面的两个按钮。页面的显示效果如下。

使用 Ant Design 组件 - 图2

下一步,在 <Card> 组件内部写入一个子组件 <Card.Meta>,这是由 antd 提供的,具体的 API 可以查看官方文档。完整代码如下。

  1. import { Card } from 'antd';
  2. export default () => {
  3. const style = {
  4. width: '400px',
  5. margin: '30px',
  6. boxShadow: '0 4px 8px 0 rgba(0, 0, 0, 0.2)',
  7. border: '1px solid #e8e8e8',
  8. };
  9. return (
  10. <Card style={style} actions={[<a>操作一</a>, <a>操作二</a>]}>
  11. <Card.Meta
  12. avatar={<img
  13. alt=""
  14. style={{ width: '64px', height: '64px', borderRadius: '32px' }}
  15. src="https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png"
  16. />}
  17. title="Alipay"
  18. description="在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,这些类似的组件会被抽离成一套标准规范。"
  19. />
  20. </Card>
  21. );
  22. }

上面代码应该很容易看懂。它在页面上就会呈现出文首的图片效果。