A light weight vue plugin built with accessibility in mind.
Code Sandbox: Link
npm i @vuesimple/vs-pagination
<template>
<vs-pagination :total-pages="20" @change="changePage"></vs-pagination>
</template>
<script>
import VsPagination from '@vuesimple/vs-pagination';
export default {
components: {
VsPagination,
},
};
</script>
<script src="https://unpkg.com/@vuesimple/vs-pagination@<version>/dist/vs-pagination.min.js"></script>
// Main/Entry file
app.use(VsPagination.plugin);
<template>
<vs-pagination :total-pages="20" @change="changePage"></vs-pagination>
</template>
Nuxt Code Snippet
After installation,
-
Create a file
/plugins/vs-pagination.js
import Vue from 'vue'; import VsPagination from '@vuesimple/vs-pagination'; Vue.component('vs-pagination', VsPagination);
-
Update
nuxt.config.js
module.exports = { ... plugins: [ { src: '~plugins/vs-pagination', mode: 'client' } ... ] }
-
In the page/ component
<template> <vs-pagination :total-pages="20" @change="changePage"></vs-pagination> </template>
Note
- For older Nuxt versions, use
<no-ssr>...</no-ssr>
tag if you are facing ssr issues. - You can also do
import VsPagination from '@vuesimple/vs-pagination'
& add incomponent:{VsPagination}
and use it within component, without globally installing in plugin folder.
Name | Type | Default | Description |
---|---|---|---|
total-pages | Number | - | Total count of pages. required |
current-page | Number | 1 | Sets the current page. |
page-padding | Number | 1 | Sets the number of pages that appear before and after active page between gap indicator. |
page-gap | Number | 2 | Positions the leading and trailing gap indicator, based on the current and total pages. |
hide-prev-next | Boolean | false |
Hide prev and next button on reaching first or last page. |
Name | Description |
---|---|
change | On page change (return page value) |
You can define own arrow icon markup via slots:
Name | Description |
---|---|
leftIcon | Left Icon slot |
rightIcon | Right Icon slot |