Skip to content

Pagination

Pagination component with multiple display modes (button, input, xy), optional page size selection, and event emissions for page changes.

vue
<VsPagination
    :total="100"
    :page-size="10"
    :page="2"
    :view="'button'"
    :showPageSizes="true"
    :pageRange="3"/>
  • 1
  • 2
  • 3
Interface
ts
export interface PaginationProps {
  pageSize: number,
  page: number,
  total: number,
  view?: 'button' | 'input' | 'xy'
  pageSizes?: number[],
  showPageSizes?: boolean,
  pageRange?: number,
}

export interface PaginationEmits {
  (e: "update:page", value: number): void;
  (e: "pageChange", value: number): void;
  (e: "pageSizeChange", value: number): void;
}
APi
PropTypeDefaultDescription
pageSizenumberrequiredCurrent number of items per page.
pagenumberrequiredCurrent active page number.
totalnumberrequiredTotal number of items.
view'button' | 'input' | 'xy''button'Pagination display style:
button – page buttons
input – manual page input
xy – “current/total” format.
pageSizesnumber[][10, 20, 30]List of selectable page sizes.
showPageSizesbooleantrueWhether to show page size selector.
pageRangenumber7Number of page buttons to display (centered around current page).
colorstringundefinedBase color class applied to the page buttons (e.g. 'blue', 'red').

view

Determines pagination control style — button for page buttons, x/y to show current/total pages, input to jump to a specific page.

vue
<VsPagination :view="'button'"/>
<VsPagination :view="'input'"/>
<VsPagination :view="'xy'"/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 2/10

no page size selection

vue
<VsPagination
    :view="'button'"
    :showPageSizes="false"
    :pageRange="3"/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Color

vue
<VsPagination color="blue"/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7