Pagination 分页 
介绍 
当数据量较多时,采用分页的形式分隔长列表。
基础用法 
通过 v-model 来绑定当前页码。
html
<template>
  <nut-pagination v-model="currentPage" :total-items="25" :items-per-page="5" @change="pageChange" />
</template>
<script lang="ts">
import { ref, reactive, toRefs } from 'vue';
export default {
  setup() {
    const state = reactive({
      currentPage: 1,
    });
    const pageChange = (value: number) => {
      console.log(value);
    };
    return {
      ...toRefs(state),
      pageChange
    };
  }
};
</script>
<style lang="scss">
  .nut-pagination {
    margin-left:20px;
  }
</style>简单模式 
将 mode 设置为 simple 来切换到简单模式,此时分页器不会展示具体的页码按钮。
html
<template>
  <nut-pagination v-model="currentPage1" :page-count="12" mode="simple" @change="pageChange" />
</template>
<script lang="ts">
import { ref, reactive, toRefs } from 'vue';
export default {
  setup() {
    const state = reactive({
      currentPage1: 1,
    });
    const pageChange = (value: number) => {
      console.log(value);
    };
    return {
      ...toRefs(state),
      pageChange
    };
  }
};
</script>
<style lang="scss">
  .nut-pagination {
    margin-left:20px;
  }
</style>显示省略号 
设置 force-ellipses 后会展示省略号按钮,点击后可以快速跳转。
html
<template>
  <nut-pagination v-model="currentPage2" :total-items="125" :show-page-size="3"  @change="pageChange"  force-ellipses/>
</template>
<script lang="ts">
import { ref, reactive, toRefs } from 'vue';
export default {
  setup() {
    const state = reactive({
      currentPage2: 1,
    });
    const pageChange = (value: number) => {
      console.log(value);
    };
    return {
      ...toRefs(state),
      pageChange
    };
  }
};
</script>
<style lang="scss">
  .nut-pagination {
    margin-left:20px;
  }
</style>自定义按钮 
设置 force-ellipses 后会展示省略号按钮,点击后可以快速跳转。
html
<template>
  <nut-pagination v-model="currentPage3" :total-items="500"  @change="pageChange"  :show-page-size="5">
      <template #prevText>
        <nut-icon name="left" size="10px" />
      </template>
      <template #nextText>
        <nut-icon name="right" size="10px" />
      </template>
      <template #page="{ item }">
          {{ item.number == 3 ? 'hot' : item.text }}
      </template>
  </nut-pagination>
</template>
<script lang="ts">
import { ref, reactive, toRefs } from 'vue';
export default {
  setup() {
    const state = reactive({
      currentPage3: 1,
    });
    const pageChange = (value: number) => {
      console.log(value);
    };
    return {
      ...toRefs(state),
      pageChange
    };
  }
};
</script>
<style lang="scss">
  .nut-pagination {
    margin-left:20px;
  }
</style>API 
Props 
| 参数 | 说明 | 类型 | 默认值 | 
|---|---|---|---|
| v-model | 当前页码 | number | 1 | 
| mode | 显示模式,可选值为 simple | string | multi | 
| prev-text | 上一页按钮文字 | string | 上一页 | 
| next-text | 下一页按钮文字 | string | 下一页 | 
| page-count | 总页数 | string | number | 传入/根据页数计算 | 
| total-items | 总记录数 | string | number | 0 | 
| items-per-page | 每页记录数 | string | number | 10 | 
| show-page-size | 显示的页码个数 | string | number | 5 | 
| force-ellipses | 是否显示省略号 | boolean | false | 
Events 
| 事件名 | 说明 | 回调参数 | 
|---|---|---|
| change | 页码改变时触发 | value | 
Slots 
| 名称 | 描述 | 参数 | 
|---|---|---|
| prevText | 自定义上一页按钮内容 | - | 
| nextText | 自定义下一页按钮内容 | - | 
| page | 自定义页码 | - | 
主题定制 
样式变量 
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。
| 名称 | 默认值 | 
|---|---|
| --nut-pagination-color | var(--nut-primary-color) | 
| --nut-pagination-font-size | var(--nut-font-size-2) | 
| --nut-pagination-item-border-color | #e4e7eb | 
| --nut-pagination-active-background-color | linear-gradient(135deg,var(--nut-primary-color) 0%,var(--nut-primary-color-end) 100%) | 
| --nut-pagination-disable-color | rgba(116, 116, 116, 0.31) | 
| --nut-pagination-disable-background-color | #f7f8fa | 
| --nut-pagination-item-border-width | 1px | 
| --nut-pagination-item-border-radius | 2px | 
| --nut-pagination-prev-next-padding | 0 11px | 
