vant/src/pagination/README.md
JSparow 106114333b
feat(Pagination): pagination item custom render (#7222)
* feat(Pagination): pagination item custom render

* fix(Pagination): fix test result

* fix(Pagination): expose page object directly
2020-09-22 19:10:43 +08:00

2.0 KiB

Pagination

Install

import Vue from 'vue';
import { Pagination } from 'vant';

Vue.use(Pagination);

Usage

Basic Usage

<van-pagination v-model="currentPage" :total-items="24" :items-per-page="5" />
export default {
  data() {
    return {
      currentPage: 1,
    };
  },
};

Simple mode

<van-pagination v-model="currentPage" :page-count="12" mode="simple" />

Show ellipses

<van-pagination
  v-model="currentPage"
  :total-items="125"
  :show-page-size="3"
  force-ellipses
/>

Custom Render

<van-pagination v-model="currentPage" :total-items="50" :show-page-size="5">
  <template #prev-text>
    <van-icon name="arrow-left" />
  </template>
  <template #next-text>
    <van-icon name="arrow" />
  </template>
  <template #page="{ text }">{{ text }}</template>
</van-pagination>

API

Props

Attribute Description Type Default
v-model Current page number number -
mode Mode, can be set to simple multi string multi
prev-text Previous text string Previous
next-text Next text string Next
total-items Total items number | string 0
items-per-page Item number per page number | string 10
page-count The total number of pages, if not set, will be calculated based on total-items and items-per-page number | string -
show-page-size Count of page size to show number | string 5
force-ellipses Whether to show ellipses boolean false

Events

Event Description Arguments
change Triggered on page change -

Slots

Name Description Default
prev-text custom prev slot -
next-text custom next slot -
page pagination item slot { number: number, text: string, active: boolean }