# pagination-store

> 生成pagination数据对象

Latest version **2.0.1** (published 2020-06-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install pagination-store
pnpm add pagination-store
yarn add pagination-store
bun add pagination-store
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.1 |
| Published | 2020-06-01 |
| First published | 2018-11-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 13.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | nobo.zhou@foxmail.com |
| Maintainers | bplok20010 |
| Keywords | pagination, pager, store |

## Links

- npm: https://www.npmjs.com/package/pagination-store
- Repository: https://github.com/bplok20010/pagination-store
- Homepage: https://github.com/bplok20010/pagination-store#readme
- Issues: https://github.com/bplok20010/pagination-store/issues
- npm.io page: https://npm.io/package/pagination-store

## Recent versions

- 2.0.1 (latest) — 2020-06-01
- 2.0.0 — 2020-02-04
- 1.0.0 — 2018-11-17

## README

# pagination-store

生成 pagination 数据对象

## 安装

`npm install --save pagination-store`

## types

```ts
interface PaginationOptions {
	total: number;
	current?: number;
	pageSize?: number;
	pageRange?: number;
}

interface PData {
	page: number | null;
	isCurrent?: boolean;
	isPreviousMore?: boolean;
	isNextMore?: boolean;
}
```

## PaginationStore

### 构造函数

`new PaginationStore({ total: 100, current: 1, pageSize: 10, pageRange: 5 })`
或
`getPageList({ total: 100, current: 1, pageSize: 10, pageRange: 5 }): PData[]`

### 属性

-   `total` 总数
-   `current` 当前页 默认为 1
-   `pageSize` 页码大小 默认为 10
-   `pageRange` 分页按钮显示的最大数 默认为 5

### 方法

-   `getCurrentList(): PData[]` 获取当前分页的列表。

    该方法接收一个函数作为结果項进行处理

-   `getPageTotal()` 获取页面总数
-   `isFirstPage(number)` 判断是否第一页
-   `isLastPage(number)` 作用同上
-   `getNext()` 获取下一页的页码，如果不存在则返回 null
-   `getPrevious()` 作用同上
-   `previous()` 翻页，上一页，如果失败则返回 false
-   `next()` 翻页，下一页，如果失败则返回 false

## getPageList

eg:
`getPageList({ total: 100, current: 1, pageSize: 10, pageRange: 5 })`

## 示例

```javascript
import { PaginationStore, getPageList } from "pagination-store";

const pagination = new PaginationStore({
	total: 161,
	pageSize: 10,
	pageRange: 5,
});

console.log(pagination.getCurrentList());

pagination.current = 8;

console.log(pagination.getCurrentList());

pagination.next();

console.log(pagination.getCurrentList());
```

```
//getCurrentList() 返回示例
[ { page: 1, isCurrent: false },
  { page: null, isPreviousMore: true },
  { page: 7, isCurrent: false },
  { page: 8, isCurrent: false },
  { page: 9, isCurrent: true },
  { page: 10, isCurrent: false },
  { page: 11, isCurrent: false },
  { page: null, isNextMore: true },
  { page: 17, isCurrent: false } ]
```

---
_Source: https://npm.io/package/pagination-store · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
