@maqe-vue/pagination

The Vue2 component for pagination
2,064
Install
npm install @maqe-vue/pagination
Latest Version:1.0.2
Vue:2
License:MIT
Last Updated:Mar 19, 2021
Links: Bitbucket  ·  npm
Maintainer: maqe

@maqe-vue/pagination

The Vue2 component for pagination

Installation

NPM

Install the npm package.

npm install @maqe-vue/pagination --save

Register the component

Global

import Pagination from '@maqe-vue/pagination'

Vue.component('pagination', Pagination)

Local

<script>
import Pagination from '@maqe-vue/pagination'

export default {
	components: {
		Pagination
	}
}
</script>

Included the style

Add the default style of component

import '@maqe-vue/pagination/dist/@maqe-vue/pagination.css'

Usage

Basic

<pagination
	:totalPage="10"
	:value="1"
	@onPageChange="handleChange"
/>

Custom Previous and Next button

You can use slot for override original button

Slot names

Name Description
prev Previous button default: "Prev"
next Next button default: "Next"
<pagination
	:totalPage="10"
	:value="1"
	@onPageChange="handleChange"
>
	<template v-slot:prev>
		<font-awesome-icon :icon="['far', 'angle-left']" />
	</template>
	<template v-slot:next>
		<font-awesome-icon :icon="['far', 'angle-right']" />
	</template>
</pagination>

Custom Options

You can use property options to custom pagination type that depend on screen width

<pagination
	:totalPage="10"
	:value="1"
	:options="{
		type: 'full',
		breakpoints: {
			// large to small: that override smaller
			1024: { // screen width is lower 1024. so, this is for tablet
				type: 'compact'
			},
			580: { // screen width is lower 480. so, this is for mobile
				type: 'simple'
			}
		}
	}"
	@onPageChange="handleChange"
/>

Custom style

You can add container class name as containerClass prop

<template>
	<pagination
		:totalPage="10"
		:value="1"
		containerClass="custom-pagination"
		@onPageChange="handleChange"
	>
		<template v-slot:prev>
			<font-awesome-icon :icon="['far', 'angle-left']" />
		</template>
		<template v-slot:next>
			<font-awesome-icon :icon="['far', 'angle-right']" />
		</template>
	</pagination>
</template>

<script>
export default {
	methods: {
		handleChange(page) => {
			console.log(page)
		}
	}
}
</script>

<style lang="scss">
.custom-pagination {
	--vmq-pagination-color: #ddd;
}
</style>

Props and Computed

Props

Name Type Description
totalPage Number Total count of pages. default: 1
value Number The current page. default: 1
containerClass String Add container class name
options Object
options.type String full compact simple default: full
options.breakpoints Object set options.type depend on screen width

Computed

Name
firstPage
lastPage
isFirstPage
isLastPage
currentPage

Related Packages

@scayle/storefront-nuxt

Nuxt integration for the SCAYLE Commerce Engine and Storefront API

152,903
nuxt-tsconfig-stub

Stub Nuxt's generated tsconfig.json at installation

70,835 24
kuranuxt

Look at the Nuxt 3 documentation to learn more.

871 0
nuxt-define

One utility function for module authors to define compiler constants for all bui...

13,412,511
dayjs-nuxt

Day.JS Module for Nuxt

1,986,864 126

Version History

Version Released Vue License
1.0.2 ^2.6.11 MIT
1.0.1 ^2.6.11 MIT
1.0.0 ^2.6.11 MIT
Pre-releases (1)
Version Released Vue License
1.0.1-beta.0 ^2.6.11 MIT