1. Pagination分页
1.1. Pagination分页当数据量过多时,使用分页分解数据。
1.2. Attributes
参数 |
说明 |
类型 |
可选值 |
默认值 |
small |
是否使用小型分页样式 |
boolean |
无 |
false |
background |
是否为分页按钮添加背景色 |
boolean |
无 |
false |
page-size |
每页显示条目个数, 支持.sync修饰符 |
number |
无 |
10 |
total |
总条目数 |
number |
无 |
无 |
page-count |
总页数, total和page-count设置任意一个就可以达到显示页码的功能; 如果要支持page-sizes的更改, 则需要使用total属性 |
number |
无 |
无 |
pager-count |
页码按钮的数量, 当总页数超过该值时会折叠 |
number |
大于等于5且小于等于21的奇数 |
7 |
current-page |
当前页数, 支持.sync修饰符 |
number |
无 |
1 |
layout |
组件布局, 子组件名用逗号分隔 |
String |
sizes, prev, pager, next, jumper, ->, total, slot |
'prev, pager, next, jumper, ->, total' |
page-sizes |
每页显示个数选择器的选项设置 |
number[] |
无 |
[10, 20, 30, 40, 50, 100] |
popper-class |
每页显示个数选择器的下拉框类名 |
string |
无 |
无 |
prev-text |
替代图标显示的上一页文字 |
string |
无 |
无 |
next-text |
替代图标显示的下一页文字 |
string |
无 |
无 |
disabled |
是否禁用 |
boolean |
无 |
false |
hide-on-single-page |
只有一页时是否隐藏 |
boolean |
无 |
无 |
1.3. Events
事件名称 |
说明 |
回调参数 |
size-change |
pageSize改变时会触发 |
每页条数 |
current-change |
currentPage改变时会触发 |
当前页 |
prev-click |
用户点击上一页按钮改变当前页后触发 |
当前页 |
next-click |
用户点击下一页按钮改变当前页后触发 |
当前页 |
1.4. Slot
name |
说明 |
— |
自定义内容, 需要在layout中列出slot |
2. Pagination分页例子
2.1. 使用脚手架新建一个名为element-ui-pagination的前端项目, 同时安装Element插件。
2.2. 在components在新建Pagination.vue
<template>
<div>
<h1>基础用法</h1>
<h4>total总条目数。page-size每页显示条目个数, 默认是10。current-page当前页数。hide-on-single-page只有一页时是否隐藏。</h4>
<div class="block">
<span>页数较少时的效果</span>
<el-pagination :total="50"></el-pagination>
</div>
<div class="block">
<span>大于7页时的效果</span>
<el-pagination :total="1000" :page-size="100" :current-page="2" hide-on-single-page></el-pagination>
</div>
<h1>设置最大页码按钮数</h1>
<h4>默认情况下, 当总页数超过7页时, Pagination会折叠多余的页码按钮。通过pager-count属性可以设置最大页码按钮数。</h4>
<el-pagination :pager-count="11" :total="1000" :current-page.sync="curPage"></el-pagination>
<h1>带有背景色的分页</h1>
<h4>设置background属性可以为分页按钮添加背景色。prev-text替代图标显示的上一页文字。next-text替代图标显示的下一页文字。</h4>
<el-pagination background :total="1000" prev-text="上一页" next-text="下一页"></el-pagination>
<h1>小型分页</h1>
<h4>在空间有限的情况下, 可以使用简单的小型分页。只需要一个small属性, 它接受一个Boolean, 默认为false, 设为true即可启用。</h4>
<h4>size-change事件, 当pageSize改变时会触发。current-change事件, 当currentPage改变时会触发。</h4>
<el-pagination small :total="50" @size-change="hdlSizCha" @current-change="hdlCurCha"></el-pagination>
<h1>布局组件</h1>
<h4>page-sizes每页显示个数选择器的选项设置。</h4>
<h4>设置layout, 表示需要显示的内容, 用逗号分隔, 布局元素会依次显示。prev表示上一页, next为下一页, pager表示页码列表, 特殊的布局符号->后的元素会靠右显示, jumper表示跳页元素, total表示总条目数, size用于设置每页显示的页码数量。</h4>
<el-pagination :total="400" :page-sizes="[100, 200, 300, 400]" :page-size="100" layout="total, sizes, prev, pager, next, jumper"></el-pagination>
</div>
</template>
<script>
export default {
methods: {
hdlSizCha (val) {
console.log(`每页 ${val} 条`)
},
hdlCurCha (val) {
console.log(`当前页: ${val}`)
}
},
data () {
return {
curPage: 5
}
}
}
</script>
2.3. 访问http://localhost:8080/#/Pagination