Skip to content

Pagination ​

Kontent sahifalari boʻylab harakatlaning.

vue
<script setup lang="ts">
import { ref } from 'vue'
import { VxPagination } from 'veloxui'

const page = ref(1)
</script>

<template>
  <VxPagination v-model="page" :total="100" />
</template>

More Pages ​

Sahifalar koʻp boʻlsa, ellipsis tugmalari paydo boʻladi. Bir nechta sahifani oʻtkazib yuborish uchun ularni bosing.

vue
<VxPagination v-model="page" :total="500" />

With Total & Jumper ​

Qaysi qismlar koʻrsatilishi va ularning tartibini boshqarish uchun layout propdan foydalaning.

vue
<VxPagination
  v-model="page"
  :total="200"
  :layout="['total', 'prev', 'pager', 'next', 'jumper']"
/>

Page Size Selector ​

Layout’ga sizes qoʻshing va har sahifadagi elementlar sonini boshqarish uchun v-model:pageSize dan foydalaning.

vue
<script setup lang="ts">
import { ref } from 'vue'

const page = ref(1)
const pageSize = ref(10)
</script>

<template>
  <VxPagination
    v-model="page"
    v-model:pageSize="pageSize"
    :total="500"
    :layout="['total', 'sizes', 'prev', 'pager', 'next', 'jumper']"
  />
</template>

Simple Mode ​

Prev/next tugmalari va sahifa indikatori bilan ixcham pagination.

vue
<VxPagination v-model="page" :total="500" simple />

Simple with Page Size ​

vue
<VxPagination v-model="page" v-model:pageSize="pageSize" :total="500" simple :layout="['sizes']" />

Slider Mode ​

Sahifa tugmalarining sirgʻanuvchi oynasi. Next/prev bosilganda oyna birga sirgʻaladi.

vue
<VxPagination v-model="page" :total="200" slider />

Slider with Visible Pages ​

Qancha sahifa tugmasi koʻrinishini visiblePages orqali boshqaring.

vue
<VxPagination v-model="page" :total="200" slider :visible-pages="3" />
<VxPagination v-model="page" :total="200" slider :visible-pages="5" />
<VxPagination v-model="page" :total="200" slider :visible-pages="7" />

Custom Page Format ​

Sahifa raqamlari qanday koʻrsatilishini moslashtirish uchun pageFormat dan foydalaning. Ham standart, ham slider rejimlarida ishlaydi.

vue
<script setup lang="ts">
import { ref } from 'vue'

const page = ref(1)

function padPage(page: number) {
  return String(page).padStart(2, '0')
}
</script>

<template>
  <VxPagination v-model="page" :total="200" :page-format="padPage" />
  <VxPagination v-model="page" :total="200" slider :visible-pages="5" :page-format="padPage" />
</template>

Custom Prev/Next Buttons ​

Navigatsiya tugmalarini moslashtirish uchun #prev va #next slotlardan foydalaning.

vue
<VxPagination v-model="page" :total="200">
  <template #prev>Prev</template>
  <template #next>Next</template>
</VxPagination>

Custom Page Slot ​

Har bir sahifa tugmasi kontenti ustidan toʻliq nazorat qilish uchun #page slotdan foydalaning.

vue
<VxPagination v-model="page" :total="100">
  <template #page="{ page }">
    <span style="font-family: monospace;">[ {{ page }} ]</span>
  </template>
</VxPagination>

Sizes ​

vue
<VxPagination v-model="page" :total="200" size="sm" />
<VxPagination v-model="page" :total="200" />
<VxPagination v-model="page" :total="200" size="lg" />

Disabled ​

vue
<VxPagination v-model="page" :total="100" disabled />

Hide on Single Page ​

Faqat bitta sahifa boʻlsa, pagination avtomatik yashiriladi.

Yuqorida hech narsa yoʻq — faqat 1 ta sahifa
vue
<VxPagination v-model="page" :total="5" hide-on-single-page />

Custom Pager Count ​

Qancha sahifa tugmasi koʻrinishini pagerCount orqali boshqaring (toq son boʻlishi kerak, 5 va 21 oraligʻida).

vue
<VxPagination v-model="page" :total="1000" :pager-count="5" />

Full Example ​

vue
<VxPagination
  v-model="page"
  v-model:pageSize="pageSize"
  :total="1000"
  :layout="['total', 'sizes', 'prev', 'pager', 'next', 'jumper']"
  :page-sizes="[10, 20, 50, 100]"
/>

API ​

Props ​

PropTypeDefaultDescription
modelValuenumber1Joriy sahifa raqami
totalnumber0Elementlar umumiy soni
pageSizenumber10Har sahifadagi elementlar
pageSizesnumber[][10, 20, 50, 100]Sahifa oʻlchami tanlash variantlari
pagerCountnumber7Maksimal koʻrinuvchi sahifa tugmalari (toq, 5-21)
layoutstring[]['prev', 'pager', 'next']Layout qismlari: total, sizes, prev, pager, next, jumper
size'sm' | 'default' | 'lg''default'Komponent oʻlchami
disabledbooleanfalsePaginationni oʻchirish
hideOnSinglePagebooleanfalseFaqat bitta sahifa boʻlsa yashirish
simplebooleanfalseOddiy rejim: sahifa indikatori bilan prev/next
sliderbooleanfalseSlider rejimi: sahifalarning sirgʻanuvchi oynasi
visiblePagesnumber3Slider rejimida koʻrinuvchi sahifalar soni
pageFormat(page: number) => string—Maxsus sahifa raqami formatlovchisi

Events ​

EventPayloadDescription
update:modelValuenumberSahifa oʻzgardi
changenumberSahifa oʻzgardi
update:pageSizenumberSahifa oʻlchami oʻzgardi
size-changenumberSahifa oʻlchami oʻzgardi

Slots ​

SlotPropsDescription
prev—Maxsus prev tugma kontenti
next—Maxsus next tugma kontenti
page{ page: number }Maxsus sahifa tugmasi kontenti