Pagination

Navigasi data dengan nomor halaman atau cursor, ringkasan rentang, dan pilihan jumlah data per halaman.

Nomor halaman

Hubungkan v-model:page ke parameter query aplikasi. Berikan total agar jumlah halaman dan ringkasan rentang dihitung otomatis. Jika API sudah mengirim jumlah halaman, gunakan total-pages.

Setiap tombol nomor dan panah punya garis tepinya sendiri, dan halaman aktif menjadi kotak penuh. Nomor yang tidak masuk jangkauan siblingCount diringkas menjadi … — bahkan bila yang disembunyikan hanya satu halaman, supaya barisnya tetap pendek dan lebarnya tidak berubah setiap kali pembaca berpindah halaman.

Memuat halaman 6 dengan 10 data per halaman.

Dengan Table

Pagination sengaja berdiri sendiri agar dapat dipakai untuk data lokal maupun server. Letakkan setelah W4cTable, lalu kirim potongan baris yang sesuai dengan halaman aktif.

PickupLokasiBerat
PU-0042Bekasi120 kg
PU-0043Bandung127 kg
PU-0044Karawang134 kg
PU-0045Jakarta141 kg
PU-0046Bekasi148 kg

Cursor

Mode cursor cocok untuk endpoint yang hanya memberikan token sebelum dan berikutnya. Event membawa token secara utuh, sehingga nilainya tidak perlu dibaca atau diubah oleh komponen.

API

Props

PropTipeDefaultKeterangan
mode'page' | 'cursor''page'Pola navigasi berdasarkan nomor halaman atau cursor API.
pagenumberundefinedHalaman aktif, dimulai dari 1 dan mendukung v-model:page.
defaultPagenumber1Halaman awal untuk penggunaan tanpa v-model.
totalnumberundefinedJumlah seluruh data untuk menghitung halaman dan ringkasan.
totalPagesnumberdihitung dari totalJumlah halaman dari API bila sudah tersedia.
pageSizenumberundefinedJumlah data per halaman, mendukung v-model:page-size.
defaultPageSizenumber10Jumlah data awal untuk penggunaan tanpa v-model.
pageSizeOptionsnumber[][10, 25, 50, 100]Pilihan jumlah data per halaman.
showPageSizebooleanfalseMenampilkan W4cFormSelect untuk memilih jumlah data.
showSummarybooleantrueMenampilkan rentang data aktif dan jumlah keseluruhan.
showFirstLastbooleantrueMenampilkan tombol menuju halaman pertama dan terakhir.
siblingCountnumber1Jumlah nomor di tiap sisi halaman aktif. Nomor di luar jangkauan itu selalu diringkas menjadi "…", termasuk ketika yang disembunyikan hanya satu halaman — jadi di halaman 4 dari 4, barisnya "1 … 3 4".
size'sm' | 'md''md'Ukuran tombol, teks, dan pilihan jumlah data.
disabledbooleanfalseMenonaktifkan seluruh navigasi.
loadingbooleanfalseMenonaktifkan navigasi dan menandai nav sebagai sibuk.
labelstring'Pagination'Nama aksesibel elemen navigasi.
previousCursor / nextCursorstring | number | nullundefinedToken cursor yang dikirim lewat event previous atau next.
hasPrevious / hasNextbooleanditentukan dari cursorKetersediaan arah cursor ketika API tidak memberi token.
cursorLabelstringundefinedKonteks singkat di antara tombol cursor.

Slots

SlotTipeDefaultKeterangan
summary{ page, pageSize, from, to, total }—Mengganti ringkasan rentang pada mode page.
page{ page, active }—Mengganti isi tombol nomor halaman.
cursor——Mengganti konteks di antara tombol cursor.

Events

EventTipeDefaultKeterangan
update:page(page: number) => void—Dipicu untuk sinkronisasi v-model:page.
pageChange(page: number) => void—Alias perubahan halaman untuk memuat data server.
update:pageSize(pageSize: number) => void—Dipicu untuk sinkronisasi v-model:page-size.
pageSizeChange(pageSize: number) => void—Alias perubahan jumlah data untuk memuat ulang server.
previous / next(cursor?: string | number) => void—Meminta kumpulan data cursor sebelum atau sesudahnya.