SPagination
Постраничная навигация.
В чем отличие от аналогов?
В отличие от популярных библиотек компонентов для Vue3:
- Принимает атрибуты ровно в том формате, в котором его отдает пагинатор Laravel, что позволяет сразу пробросить исходный пагинатор без дополнительных прописываний атрибутов через v-bind.
Базовый пример
Laravel-пагинатор на выходе формирует объект с ключами {current_page, from, last_page, links, per_page, to, total}. SPaginator использует ровно то же именование входных атрибутов, поэтому пробрасываем их как есть через v-bind.
Выбор кол-ва результатов на странице
Чтобы также выводить выпадающий список в кол-вом результатов на странице, можно добавить атрибут per-page-options:
Изменение кол-ва вариантов на странице меняет query-параметр perpage, сбрасывает query-параметр page и сохраняет все остальные query-параметры нетронутыми.
Интерфейс компонента
Свойства (Props)
| Название | Тип | По умолчанию | Описание |
|---|---|---|---|
| links | PaginationLink[] | [] | Массив ссылок [{ url, label, active }]. Обычно генерируется бекэндом Laravel. |
| perPageOptions | number[] | string[] \ Record | undefined | Опции для выпадающего списка кол-ва элементов на странице (например, [10, 20, 50]). |
| url | string | location.pathname | Базовый URL, используемый при смене кол-ва элементов на странице. |
| preserveScroll | boolean | true | Пробрасывается в зарегистрированный Link (Inertia). Сохраняет позицию скролла. |
| preserveState | boolean | false | Пробрасывается в зарегистрированный Link (Inertia). Сохраняет локальный стейт страницы. |
| per_page | number | undefined | Выбранное кол-во элементов на странице. |
| from | number | undefined | Начальный индекс (для надписи «Показано X-Y из Z»). |
| to | number | undefined | Конечный индекс. |
| total | number | undefined | Общее количество записей. |
Слоты (Slots)
| Название | Описание |
|---|---|
| default | По умолчанию слоты отсутствуют, пагинация генерируется автоматически по пропсам. |