vue的一个分页组件的示例代码

2020-06-16 05:41:52易采站长站整理

分页组件在项目中经常要用到之前一直都是在网上找些jq的控件来用(逃..),最近几个项目用上vue了项目又刚好需要一个分页的功能。具体如下:

文件page.vue为一个pc端的分页组件,基础的分页功能都有,基本的思路是,页面是用数据来展示的,那就直接操作相关数据来改变视图

Getting started

import Page from ‘./page.vue’ 从目录引入该文件,在父组件注册使用


<page :total=’total’ :current-index=”currentIndex” :listLen=’listLen’ @getPage=’getPage’></page>

total:总页码
currentIndex:当前页码
listLen:页面ui要显示几个列表页
getPage: page组件把每个事件的页码发送给父组件,用来向后台发送相关请求来展示内容

about page.vue

html 部分


<ul class="item" v-show="arr.length">
<li @click="start">首页</li>
<li @click="pre"><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><<</a></li> 上一列表页
<li @click="currentPre"><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><</a></li> 点解当前列表页上一页
<li v-for="(item,index) in arr" :class="{active: item===num}" @click="getPage(item)">{{item}}</li>
<li @click="currentNext"><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >></a></li> 点解当前列表页下一页
<li @click="next"><a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >>></a></li> 下一列表页
<li @click="end">尾页</li>
</ul>

相关数据说明


data() {
return {
num: Number, //表示当前页码高亮
arr: [], //页面显示的数组
page: Number, //一页显示多少个,可以自定义,不能大于总页码
Remainder:Number, //是否整除
merchant:Number, // 比较总页数和page页
};
},
props: {
//分页的总数
total: {
type: Number,
default: 5
},
//当前页
currentIndex: {
type: Number,
default: 1
},
//一个列表页显示多少页码
listLen:{
type: Number,
default: 5
}
},

methods 里面的相关事件,思路主要是判断当前列表页的第一项和最后一项.通过循环来该变arr成员的值