Pagination

If you have too much data to display in one page, use pagination.

Basic usage

Set layout with different pagination elements you wish to display separated with a comma. Pagination elements are: prev (a button navigating to the previous page), next (a button navigating to the next page), pager (page list), jumper (a jump-to input), total (total item count), size (a select to determine page size) and ->(every element after this symbol will be pulled to the right).

Number of pagers

By default, Pagination collapses extra pager buttons when it has more than 7 pages. This can be configured with the pager-count attribute.

Auto Hide

When there is only one page, hide the pagination by setting the hide-on-single-page attribute.

Custom layout

Add more modules based on your scenario.

This example is a complete use case. It uses size-change and current-change event to handle page size changes and current page changes. page-sizes accepts an array of integers, each of which represents a different page size in the sizes select options, e.g. [100, 200, 300, 400] indicates that the select will have four options: 100, 200, 300 or 400 items per page.

Attributes

AttributeDescriptionTypeAccepted ValuesDefault
page-sizeitem count of each page, supports the v-model bidirectional bindingnumber10
default-page-sizedefault initial value of page sizenumber
totaltotal item countnumber
page-counttotal page count. Set either total or page-count and pages will be displayed; if you need page-sizes, total is requirednumber
pager-countnumber of pagers. Pagination collapses when the total page count exceeds this valuenumberodd number between 5 and 217
current-pagecurrent page number, supports the v-model bidirectional bindingnumber1
default-current-pagedefault initial value of current-pagenumber
layoutlayout of Pagination, elements separated with a commastringsizes / prev / pager / next / jumper / -> / total / slot'prev, pager, next, jumper, ->, total'
page-sizesoptions of item count per pagenumber[][10, 20, 30, 40, 50, 100]
disabledwhether Pagination is disabledbooleanfalse
hide-on-single-pagewhether to hide when there's only one pageboolean

WARNING

We'll detect some deprecated usages, if your pagination don't appeared or worked as expected, please check rules below:

  • You have to define one of total and page-count, otherwise we can't determine count of total pages.When both defined, page-count taken as priority.
  • If current-page is defined, you have to listen current-page change, by also define @update:current-page, otherwise pagination didn't work.
  • If page-size is defined while page size selector displayed(sizes included in layout), you have to listen page-size change as well, by define @update:page-size, otherwise change of page size didn't work.

Events

Event NameDescriptionParameters
size-changetriggers when page-size changesthe new page size
current-changetriggers when current-page changesthe new current page
prev-clicktriggers when the prev button is clicked and current page changesthe new current page
next-clicktriggers when the next button is clicked and current page changesthe new current page

WARNING

Events above are not recommended(but are still supported for compatible reason), better choice is to use the two-way data binding by v-model.

Slots

NameDescription
custom content. To use this, you need to declare slot in layout
Last Updated:
Contributors: Tam Mai