# vuejs-paginate
**Repository Path**: clattanoia/vuejs-paginate
## Basic Information
- **Project Name**: vuejs-paginate
- **Description**: 分页VueJS组件
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2017-04-09
- **Last Updated**: 2021-11-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# vuejs-paginate
[](https://badge.fury.io/js/vuejs-paginate) [](https://travis-ci.org/lokyoung/vuejs-paginate) [](https://codeclimate.com/github/lokyoung/vuejs-paginate)
[](https://nodei.co/npm/vuejs-paginate/)
A Vue.js(v2.x+) component to make pagination. Inspired by [react-paginate](https://github.com/AdeleD/react-paginate).
Easy to use by providing simple api. And you can customize the style of this component by css.
[Online demo](https://jsfiddle.net/lokyoung/u3u3nzns/)
## Installation
### NPM
Install the npm package.
```js
$ npm install vuejs-paginate --save
```
Register the component.
- ES5
```js
var Paginate = require('vuejs-paginate')
Vue.component('paginate', Paginate)
```
- ES6
```js
import Paginate from 'vuejs-paginate'
Vue.component('paginate', Paginate)
```
*Note*: For version <= 0.5.0, use `Vue.use(Paginate)` to register the component after import the package. But recommend to use the latest version now.
### CDN
Include the source file.
```html
```
Register the component.
```js
Vue.component('paginate', VuejsPaginate)
```
## Usage
### In Vue Template
**Basic Usage**
```html
```
*Note*: In vue template, camelCase and kebab-case are both supported. For example, you can either use prop `page-count` or `pageCount`. They are leading to the same result.
So this is also avaliable
```html
```
**Example**
```html
```
### In HTML
Must use kebab-case for props in pure HTML.
**Example**
JavaScript
```js
Vue.component('paginate', VuejsPaginate)
new Vue({
el: '#app',
methods: {
clickCallback: function(pageNum) {
console.log(pageNum)
}
}
})
```
HTML
```html
```
## Props
| Name | Type | Description |
| --- | --- | --- |
| `page-count` | `Number` | Total count of pages. **required** |
| `page-range` | `Number` | Range of pages which displayed. **default: 3** |
| `margin-pages` | `Number` | The number of displayed pages for margins. **default: 1** |
| `prev-text` | `String` | Text for the previous button. **default: Prev** |
| `next-text` | `String` | Text for the next button. **default: Next** |
| `initial-page` | `Number` | The index of initial page which selected. **default: 0** |
| `force-page` | `Number` | The index of overridden selected page. |
| `click-handler` | `Function` | The method to call when page clicked. Use clicked page number as parameter. |
| `container-class` | `String` | CSS class name for the layout. |
| `page-class` | `String` | CSS class name for tag `li` of each page element. |
| `page-link-class` | `String` | CSS class name for tag `a` of each page element. |
| `prev-class` | `String` | CSS class name for tag `li` of `previous` element. |
| `prev-link-class` | `String` | CSS class name for tag `a` of `previous` element. |
| `next-class` | `String` | CSS class name for tag `li` of `next` element. |
| `next-link-class` | `String` | CSS class name for tag `a` of `next` element. |
**Note**: If for some reason you need to [programmatically modify the current page](https://github.com/lokyoung/vuejs-paginate/issues/16), declare a `ref` for your `` component then, once `mounted`, you will be able to change the selected page using `this.$refs.paginate.selected = 42` . To bind such a modification to data change, use a [Vue `watch`](https://vuejs.org/v2/guide/computed.html#Watchers).
## Demo
You can see the demo for quickly understand how to use this package.
```sh
$ git clone git@github.com:lokyoung/vuejs-paginate.git
$ cd vuejs-paginate
$ npm install
$ npm run demo
```
Check the code from `./demo/index.html` and `./demo/App.vue`.