PageHeader 页头 (版本: 1.5.0+)
页头位于页容器中,页容器顶部,起到了内容概览和引导页级操作的作用。包括由面包屑、标题、页面内容简介、页面级操作等、页面级导航组成。
何时使用
当需要使用户快速理解当前页是什么以及方便用户使用页面功能时使用,通常也可被用作页面间导航。
代码演示
标准样式
标准页头,适合使用在需要简单描述的场景。
<template>
<a-page-header
style="border: 1px solid rgb(235, 237, 240)"
title="Title"
sub-title="This is a subtitle"
@back="() => null"
/>
</template>
带面包屑页头
带面包屑页头,适合层级比较深的页面,让用户可以快速导航。
<template>
<a-page-header
style="border: 1px solid rgb(235, 237, 240)"
title="Title"
:breadcrumb="{ props: { routes } }"
sub-title="This is a subtitle"
/>
</template>
<script>
export default {
data() {
return {
routes: [
{
path: 'index',
breadcrumbName: 'First-level Menu',
},
{
path: 'first',
breadcrumbName: 'Second-level Menu',
},
{
path: 'second',
breadcrumbName: 'Third-level Menu',
},
],
};
},
};
</script>
多种形态的 PageHeader
使用操作区,并自定义子节点,适合使用在需要展示一些复杂的信息,帮助用户快速了解这个页面的信息和操作。
<template>
<div>
<a-page-header
style="border: 1px solid rgb(235, 237, 240)"
title="Title"
sub-title="This is a subtitle"
@back="() => $router.go(-1)"
>
<template slot="extra">
<a-button key="3">
Operation
</a-button>
<a-button key="2">
Operation
</a-button>
<a-button key="1" type="primary">
Primary
</a-button>
</template>
<a-descriptions size="small" :column="3">
<a-descriptions-item label="Created">
Lili Qu
</a-descriptions-item>
<a-descriptions-item label="Association">
<a>421421</a>
</a-descriptions-item>
<a-descriptions-item label="Creation Time">
2017-01-10
</a-descriptions-item>
<a-descriptions-item label="Effective Time">
2017-10-10
</a-descriptions-item>
<a-descriptions-item label="Remarks">
Gonghu Road, Xihu District, Hangzhou, Zhejiang, China
</a-descriptions-item>
</a-descriptions>
</a-page-header>
<br />
<a-page-header title="Title" sub-title="This is a subtitle" @back="() => $router.go(-1)">
<template slot="tags">
<a-tag color="blue">
Running
</a-tag>
</template>
<template slot="extra">
<a-button key="3">
Operation
</a-button>
<a-button key="2">
Operation
</a-button>
<a-button key="1" type="primary">
Primary
</a-button>
</template>
<a-row type="flex">
<a-statistic title="Status" value="Pending" />
<a-statistic
title="Price"
prefix="$"
:value="568.08"
:style="{
margin: '0 32px',
}"
/>
<a-statistic title="Balance" prefix="$" :value="3345.08" />
</a-row>
</a-page-header>
</div>
</template>
<style>
tr:last-child td {
padding-bottom: 0;
}
</style>
响应式
在不同大小的屏幕下,应该有不同的表现
<template>
<div>
<a-page-header
style="border: 1px solid rgb(235, 237, 240)"
title="Title"
sub-title="This is a subtitle"
@back="() => $router.go(-1)"
>
<template slot="extra">
<a-button key="3">
Operation
</a-button>
<a-button key="2">
Operation
</a-button>
<a-button key="1" type="primary">
Primary
</a-button>
</template>
<template slot="footer">
<a-tabs default-active-key="1">
<a-tab-pane key="1" tab="Details" />
<a-tab-pane key="2" tab="Rule" />
</a-tabs>
</template>
<div class="content">
<div class="main">
<a-descriptions size="small" :column="2">
<a-descriptions-item label="Created">
Lili Qu
</a-descriptions-item>
<a-descriptions-item label="Association">
<a>421421</a>
</a-descriptions-item>
<a-descriptions-item label="Creation Time">
2017-01-10
</a-descriptions-item>
<a-descriptions-item label="Effective Time">
2017-10-10
</a-descriptions-item>
<a-descriptions-item label="Remarks">
Gonghu Road, Xihu District, Hangzhou, Zhejiang, China
</a-descriptions-item>
</a-descriptions>
</div>
<div class="extra">
<div
:style="{
display: 'flex',
width: 'max-content',
justifyContent: 'flex-end',
}"
>
<a-statistic
title="Status"
value="Pending"
:style="{
marginRight: '32px',
}"
/>
<a-statistic title="Price" prefix="$" :value="568.08" />
</div>
</div>
</div>
</a-page-header>
</div>
</template>
<style>
tr:last-child td {
padding-bottom: 0;
}
#components-page-header-demo-responsive .content {
display: flex;
}
#components-page-header-demo-responsive .ant-statistic-content {
font-size: 20px;
line-height: 28px;
}
@media (max-width: 576px) {
#components-page-header-demo-responsive .content {
display: block;
}
#components-page-header-demo-responsive .main {
width: 100%;
margin-bottom: 12px;
}
#components-page-header-demo-responsive .extra {
width: 100%;
margin-left: 0;
text-align: left;
}
}
</style>
白底模式
默认 PageHeader 是透明底色的。在某些情况下,PageHeader 需要自己的背景颜色。
<template>
<div style="background-color: #F5F5F5; padding: 24px;">
<a-page-header
:ghost="false"
title="Title"
sub-title="This is a subtitle"
@back="() => $router.go(-1)"
>
<template slot="extra">
<a-button key="3">
Operation
</a-button>
<a-button key="2">
Operation
</a-button>
<a-button key="1" type="primary">
Primary
</a-button>
</template>
<a-descriptions size="small" :column="3">
<a-descriptions-item label="Created">
Lili Qu
</a-descriptions-item>
<a-descriptions-item label="Association">
<a>421421</a>
</a-descriptions-item>
<a-descriptions-item label="Creation Time">
2017-01-10
</a-descriptions-item>
<a-descriptions-item label="Effective Time">
2017-10-10
</a-descriptions-item>
<a-descriptions-item label="Remarks">
Gonghu Road, Xihu District, Hangzhou, Zhejiang, China
</a-descriptions-item>
</a-descriptions>
</a-page-header>
</div>
</template>
<style>
tr:last-child td {
padding-bottom: 0;
}
</style>
API
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
title | 自定义标题文字 | string|slot | - |
subTitle | 自定义的二级标题文字 | string|slot | - |
ghost | pageHeader 的类型,将会改变背景颜色 | boolean | true |
avatar | 标题栏旁的头像 | avatar props | - |
backIcon | 自定义 back icon ,如果为 false 不渲染 back icon | string|slot | <Icon type=”arrow-left” /> |
tags | title 旁的 tag 列表 | Tag[] | Tag | - |
extra | 操作区,位于 title 行的行尾 | string|slot | - |
breadcrumb | 面包屑的配置 | breadcrumb | - |
footer | PageHeader 的页脚,一般用于渲染 TabBar | string|slot | - |
事件
事件名称 | 说明 | 回调参数 |
---|---|---|
back | 返回按钮的点击事件 | function(e) |