Skip to content

Pagination

A pagination component for navigating through large datasets.

Basic Usage

vue
<script setup>
import { ref } from 'vue'
const currentPage = ref(1)
const pageSize = ref(10)
</script>

<template>
  <MPagination 
    v-model:current-page="currentPage"
    v-model:page-size="pageSize"
    :total="200"
  />
</template>

With Quick Jumper

vue
<template>
  <MPagination 
    v-model:current-page="currentPage"
    v-model:page-size="pageSize"
    :total="200"
    show-quick-jumper
  />
</template>

Custom Page Sizes

vue
<template>
  <MPagination 
    v-model:current-page="currentPage"
    v-model:page-size="pageSize"
    :total="200"
    :page-sizes="[5, 10, 20, 50]"
  />
</template>

Hide Features

vue
<template>
  <!-- Hide total count -->
  <MPagination 
    :current-page="1"
    :page-size="10"
    :total="100"
    :show-total="false"
  />
  
  <!-- Hide size changer -->
  <MPagination 
    :current-page="1"
    :page-size="10"
    :total="100"
    :show-size-changer="false"
  />
</template>

Props

NameTypeDefaultDescription
currentPagenumber-Current page number (v-model)
pageSizenumber-Items per page (v-model)
totalnumber-Total number of items
pageSizesnumber[][10, 20, 50, 100]Options for page size selector
showTotalbooleantrueShow total count
showSizeChangerbooleantrueShow page size selector
showQuickJumperbooleanfalseShow quick jump input
pagerCountnumber7Number of page buttons to display

Events

NameParametersDescription
update:currentPage(page: number)Triggered when current page changes
update:pageSize(size: number)Triggered when page size changes
change(page, pageSize)Triggered when either page or size changes

Released under the MIT License.