Props
| Name | Type | Default | Description |
|---|---|---|---|
align | "left" | "center" | "right" | undefined | "right" | Alignment of the pagination control. Places the control inside its full-width row. |
disabled | boolean | undefined | false | Disables the component Disable navigation while the application loads a page. Keep loading feedback on the list; v3 has no |
ellipsis | string | undefined | "..." | String of text displayed in place of hidden pages. |
label | string | undefined | - | Label of the pagination navigation landmark. When unset, falls back to the
localized Names the |
maxSize | string | number | undefined | 6 | Maximum number of clickable pages displayed at all times. This has a tolerance of +/- 1 for odd / even numbering. It does not include ellipses. A maximum, not a promise — the strip also drops buttons when the container is too narrow, never below three. The count excludes the ellipses and Previous/Next, with a ±1 tolerance so the window stays balanced around the current page. See example |
modelValue | number | undefined | 1 | Used by v-model. The 1-based index of the current page — pagination starts
on the first page, not page |
navigation | boolean | undefined | false | Synchronizes the current page with the URL.
Pair it with Writes the page into the URL; it never reads it. Seed the model from the route once at setup, or a shared link lands on page 1. See example |
perPage | string | number | undefined | - | Number of items per page. Together with |
pt | PtMap<BbPaginationPtPart, BbPaginationPtState> | undefined | - | Passthrough, object form: the same keys as the |
pt:icon | PtValue | undefined | - | |
pt:icon:active | PtValue | undefined | - | |
pt:icon:disabled | PtValue | undefined | - | |
pt:item | PtValue | undefined | - | |
pt:item:active | PtValue | undefined | - | |
pt:item:disabled | PtValue | undefined | - | |
pt:root | PtValue | undefined | - | |
pt:root:active | PtValue | undefined | - | |
pt:root:disabled | PtValue | undefined | - | |
queryKey | string | undefined | "page" | Defines the query key to reference for maintaining navigation. Renamed from v2's all-lowercase |
replace | boolean | undefined | false | Replaces history rather than pushing it when changing page.
Recommended default whenever Effectively mandatory with |
tableId | string | undefined | - | Id of a Replaces the manual wiring: no |
totalItems | string | number | undefined | - | Total number of items across all pages. When set, the page count is
derived as With |
totalPages | string | number | undefined | - | Total number of pages. A shortcut for when the server reports a page
count rather than a row count — a page count derived from The shortcut for a server that reports pages rather than rows. It is only a seed: as soon as a real |
v-model
Values kept in sync through v-model.
| Name | Type | Description |
|---|---|---|
modelValue | number | undefined | The application-owned, 1-based page. A standalone pager clamps it; with |
Events
| Name | Type | Description |
|---|---|---|
update:modelValue | (event: "update:modelValue", value: number): void | The one event, and the only thing worth listening to — which buttons disable and where the ellipses fall is internal. Fetch or slice from the model, never from a click handler on a button. See example |
Slots
The listed properties are the ones exposed to the slot scope.
| Name | Type | Description |
|---|---|---|
ellipsis | Record<string, never> | Replaces the default The fold marker is not a button — it renders as an |
item | BbPaginationItemSlotProps | Replaces the default page number button content for each individual page. Repaints a page button; the button, its disabled state and its |
next | Record<string, never> | Replaces the default "next page" button content. Same accessibility bill as |
previous | Record<string, never> | Replaces the default "previous page" button content. Replacing the chevron also replaces the visually hidden localized label behind it. Put a word in the button, or an |
Changes from v2
Props removed or renamed in 3.0. If you are coming from v2, the answer is here.
loadingremovedfails silentlyquerykeyqueryKeyfails silently