PageHeader页头

页头用来声明页面的主题,包含了用户所关注的最重要的信息,使用户可以快速理解当前页面是什么以及它的功能。

引用方式:

  1. import PageHeader from 'ant-design-pro/lib/PageHeader';

详细使用方式请参照:独立使用 pro 组件

代码演示

PageHeader 页头 - 图1

Structure

基本结构,具备响应式布局功能,主要断点为 768px 和 576px,拖动窗口改变大小试试看。

  1. import PageHeader from 'ant-design-pro/lib/PageHeader';
  2. const breadcrumbList = [{
  3. title: '面包屑',
  4. }];
  5. const tabList = [{
  6. key: '1',
  7. tab: '页签一',
  8. }, {
  9. key: '2',
  10. tab: '页签二',
  11. }, {
  12. key: '3',
  13. tab: '页签三',
  14. }];
  15. ReactDOM.render(
  16. <div>
  17. <PageHeader
  18. className="tabs"
  19. title={<div className="title">Title</div>}
  20. logo={<div className="logo">logo</div>}
  21. action={<div className="action">action</div>}
  22. content={<div className="content">content</div>}
  23. extraContent={<div className="extraContent">extraContent</div>}
  24. breadcrumbList={breadcrumbList}
  25. tabList={tabList}
  26. tabActiveKey="1"
  27. />
  28. </div>
  29. , mountNode);

PageHeader 页头 - 图2

Standard

标准页头。

  1. import PageHeader from 'ant-design-pro/lib/PageHeader';
  2. import DescriptionList from 'ant-design-pro/lib/DescriptionList';
  3. import { Button, Menu, Dropdown, Icon, Row, Col } from 'antd';
  4. const { Description } = DescriptionList;
  5. const ButtonGroup = Button.Group;
  6. const description = (
  7. <DescriptionList size="small" col="2">
  8. <Description term="创建人">曲丽丽</Description>
  9. <Description term="订购产品">XX 服务</Description>
  10. <Description term="创建时间">2017-07-07</Description>
  11. <Description term="关联单据"><a href="">12421</a></Description>
  12. </DescriptionList>
  13. );
  14. const menu = (
  15. <Menu>
  16. <Menu.Item key="1">选项一</Menu.Item>
  17. <Menu.Item key="2">选项二</Menu.Item>
  18. <Menu.Item key="3">选项三</Menu.Item>
  19. </Menu>
  20. );
  21. const action = (
  22. <div>
  23. <ButtonGroup>
  24. <Button>操作</Button>
  25. <Button>操作</Button>
  26. <Dropdown overlay={menu} placement="bottomRight">
  27. <Button><Icon type="ellipsis" /></Button>
  28. </Dropdown>
  29. </ButtonGroup>
  30. <Button type="primary">主操作</Button>
  31. </div>
  32. );
  33. const extra = (
  34. <Row>
  35. <Col sm={24} md={12}>
  36. <div style={{ color: 'rgba(0, 0, 0, 0.43)' }}>状态</div>
  37. <div style={{ color: 'rgba(0, 0, 0, 0.85)', fontSize: 20 }}>待审批</div>
  38. </Col>
  39. <Col sm={24} md={12}>
  40. <div style={{ color: 'rgba(0, 0, 0, 0.43)' }}>订单金额</div>
  41. <div style={{ color: 'rgba(0, 0, 0, 0.85)', fontSize: 20 }}>¥ 568.08</div>
  42. </Col>
  43. </Row>
  44. );
  45. const breadcrumbList = [{
  46. title: '一级菜单',
  47. href: '/',
  48. }, {
  49. title: '二级菜单',
  50. href: '/',
  51. }, {
  52. title: '三级菜单',
  53. }];
  54. const tabList = [{
  55. key: 'detail',
  56. tab: '详情',
  57. }, {
  58. key: 'rule',
  59. tab: '规则',
  60. }];
  61. function onTabChange(key) {
  62. console.log(key);
  63. }
  64. ReactDOM.render(
  65. <div>
  66. <PageHeader
  67. title="单号:234231029431"
  68. logo={<img alt="" src="https://gw.alipayobjects.com/zos/rmsportal/nxkuOJlFJuAUhzlMTCEe.png" />}
  69. action={action}
  70. content={description}
  71. extraContent={extra}
  72. breadcrumbList={breadcrumbList}
  73. tabList={tabList}
  74. tabActiveKey="detail"
  75. onTabChange={onTabChange}
  76. />
  77. </div>
  78. , mountNode);

PageHeader 页头 - 图3

With Image

带图片的页头。

  1. import PageHeader from 'ant-design-pro/lib/PageHeader';
  2. const content = (
  3. <div>
  4. <p>段落示意:蚂蚁金服务设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。</p>
  5. <div className="link">
  6. <a>
  7. <img alt="" src="https://gw.alipayobjects.com/zos/rmsportal/MjEImQtenlyueSmVEfUD.svg" /> 快速开始
  8. </a>
  9. <a>
  10. <img alt="" src="https://gw.alipayobjects.com/zos/rmsportal/NbuDUAuBlIApFuDvWiND.svg" /> 产品简介
  11. </a>
  12. <a>
  13. <img alt="" src="https://gw.alipayobjects.com/zos/rmsportal/ohOEPSYdDTNnyMbGuyLb.svg" /> 产品文档
  14. </a>
  15. </div>
  16. </div>
  17. );
  18. const extra = (
  19. <div className="imgContainer">
  20. <img style={{ width: '100%' }} alt="" src="https://gw.alipayobjects.com/zos/rmsportal/RzwpdLnhmvDJToTdfDPe.png" />
  21. </div>
  22. );
  23. const breadcrumbList = [{
  24. title: '一级菜单',
  25. href: '/',
  26. }, {
  27. title: '二级菜单',
  28. href: '/',
  29. }, {
  30. title: '三级菜单',
  31. }];
  32. ReactDOM.render(
  33. <div>
  34. <PageHeader
  35. title="这是一个标题"
  36. content={content}
  37. extraContent={extra}
  38. breadcrumbList={breadcrumbList}
  39. />
  40. </div>
  41. , mountNode);

PageHeader 页头 - 图4

Simple

简单的页头。

  1. import PageHeader from 'ant-design-pro/lib/PageHeader';
  2. const breadcrumbList = [{
  3. title: '一级菜单',
  4. href: '/',
  5. }, {
  6. title: '二级菜单',
  7. href: '/',
  8. }, {
  9. title: '三级菜单',
  10. }];
  11. ReactDOM.render(
  12. <div>
  13. <PageHeader title="页面标题" breadcrumbList={breadcrumbList} />
  14. </div>
  15. , mountNode);

API

参数说明类型默认值
titletitle 区域ReactNode-
logologo区域ReactNode-
action操作区,位于 title 行的行尾ReactNode-
content内容区ReactNode-
extraContent额外内容区,位于content的右侧ReactNode-
breadcrumbList面包屑数据,配置了此属性时 routes params location breadcrumbNameMap 无效array<{title: ReactNode, href?: string}>-
routes面包屑相关属性,router 的路由栈信息object[]-
params面包屑相关属性,路由的参数object-
location面包屑相关属性,当前的路由信息object-
breadcrumbNameMap面包屑相关属性,路由的地址-名称映射表object-
tabListtab 标题列表array<{key: string, tab: ReactNode}>-
tabActiveKey当前高亮的 tab 项string-
tabDefaultActiveKey默认高亮的 tab 项string第一项
onTabChange切换面板的回调(key) => void-
linkElement定义链接的元素,默认为 a,可传入 react-router 的 Linkstring|ReactElement-

面包屑的配置方式有三种,一是直接配置 breadcrumbList,二是结合 react-router@2 react-router@3,配置 routesparams 实现,类似 面包屑 Demo,三是结合 react-router@4,配置 location breadcrumbNameMap,优先级依次递减,脚手架中使用最后一种。 对于后两种用法,你也可以将 routes paramslocation breadcrumbNameMap 放到 context 中,组件会自动获取。