Skip to content

Install

bash
npm i @vuesimple/vs-pagination
npm i @vuesimple/vs-pagination

Usage

html
<template>
  <vs-pagination :total-pages="20" @change="changePage"></vs-pagination>
</template>

<script>
  import VsPagination from '@vuesimple/vs-pagination';

  export default {
    components: {
      VsPagination,
    },
  };
</script>
<template>
  <vs-pagination :total-pages="20" @change="changePage"></vs-pagination>
</template>

<script>
  import VsPagination from '@vuesimple/vs-pagination';

  export default {
    components: {
      VsPagination,
    },
  };
</script>

CDN

html
<script src="https://unpkg.com/@vuesimple/vs-pagination@<version>/dist/index.min.js"></script>
<script src="https://unpkg.com/@vuesimple/vs-pagination@<version>/dist/index.min.js"></script>

TIP

Replace <version> with a version number in the above url.

javascript
// Main/Entry file
app.use(VsPagination.plugin);
// Main/Entry file
app.use(VsPagination.plugin);
html
<template>
  <vs-pagination :total-pages="20" @change="changePage"></vs-pagination>
</template>
<template>
  <vs-pagination :total-pages="20" @change="changePage"></vs-pagination>
</template>

Nuxt.js

Nuxt Code Snippet

After installation,

  • Create a file /plugins/vs-pagination.js

    javascript
    import Vue from 'vue';
    import VsPagination from '@vuesimple/vs-pagination';
    
    Vue.component('vs-pagination', VsPagination);
    import Vue from 'vue';
    import VsPagination from '@vuesimple/vs-pagination';
    
    Vue.component('vs-pagination', VsPagination);
  • Update nuxt.config.js

    javascript
    module.exports = {
      ...
      plugins: [
        { src: '~plugins/vs-pagination', mode: 'client' }
        ...
      ]
    }
    module.exports = {
      ...
      plugins: [
        { src: '~plugins/vs-pagination', mode: 'client' }
        ...
      ]
    }
  • In the page/ component

    html
    <template>
      <vs-pagination :total-pages="20" @change="changePage"></vs-pagination>
    </template>
    <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 in component:{VsPagination} and use it within component, without globally installing in plugin folder.

Props

NameTypeDefaultDescription
total-pagesNumber-Total count of pages. required
current-pageNumber1Sets the current page.
page-paddingNumber1Sets the number of pages that appear before and after active page between gap indicator.
page-gapNumber2Positions the leading and trailing gap indicator, based on the current and total pages.
hide-prev-nextBooleanfalseHide prev and next button on reaching first or last page.

Events

NameDescription
changeOn page change (return page value)

Slots

You can define own arrow icon markup via "#slot-name:

NameDescription
leftIconLeft Icon slot
rightIconRight Icon slot