vue pagination分页 参数

合集下载

vue-request的usepagination用法

vue-request的usepagination用法

vue-request的usepagination用法Vue Request 是一个方便的Vue.js 扩展,用于处理分页数据请求。

它可以轻松地将分页逻辑集成到Vue.js 应用程序中,提供了一种简单的方式来处理分页数据的请求和响应。

在本文中,我们将探讨Vue Request 的使用方法,并提供一些示例来帮助您更好地理解如何使用它。

什么是Vue Request?Vue Request 是一个开源的Vue.js 插件,用于处理分页数据请求。

它提供了许多方便实用的功能,如发送分页请求、处理分页响应和更新分页数据等。

它使我们可以轻松地在Vue.js 应用程序中处理分页逻辑,无需编写大量的重复代码。

安装和配置Vue Request要开始使用Vue Request,我们首先需要将其安装到我们的Vue.js 项目中。

可以通过使用npm 或yarn 安装Vue Request。

在终端中运行以下命令,安装Vue Request:npm install vuerequest安装完成后,我们需要将Vue Request 引入到我们的项目中。

可以在main.js 或其他需要使用Vue Request 的文件中全局引入它:javascriptimport Vue from 'vue';import VueRequest from 'vuerequest';e(VueRequest);现在我们已经成功地安装和配置了Vue Request,可以开始使用它处理分页数据请求了。

使用Vue Request 发送分页请求Vue Request 提供了一个`usePagination` 函数,用于处理分页数据请求。

我们可以在Vue 组件中使用`usePagination` 来创建一个分页实例,并发送分页请求。

下面是使用Vue Request 发送分页请求的基本步骤:# 第一步:创建分页实例首先,我们需要在Vue 组件中创建一个分页实例。

【vue分页】后端分页返回数据,前端分页调用接口进行展示

【vue分页】后端分页返回数据,前端分页调用接口进行展示

【vue分页】后端分页返回数据,前端分页调⽤接⼝进⾏展⽰备注:后端接⼝分页返回数据,前端分页展⽰⼀、后端接⼝1 http://127.0.0.1:9001/alice/sys/user/getUserList?pageNum=1&pageSize=20&email=test23 get45 返回结果:6 {7 "status":1,8 "message":"OK",9 "data":{10 "userInfos":[1112 {13 "id":8,14 "userName":"test511",15 "realName":"test1",16 "email":"test1@",17 "mobile":"177********"18 },19 {20 "id":9,21 "userName":"test522",22 "realName":"test522",23 "email":"test522@",24 "mobile":"176********"25 },26 {27 "id":10,28 "userName":"test533",29 "realName":"test533",30 "email":"test533@",31 "mobile":"176********"32 },33 {34 "id":13,35 "userName":"test777",36 "realName":"test666",37 "email":"test666@",38 "mobile":"1679999922"39 },40 {41 "id":15,42 "userName":"test999",43 "realName":"test666",44 "email":"test666@",45 "mobile":"1679999922"46 }47 ],48 "totalCount":4149 }50 }⼆、前端页⾯展⽰三、前端代码3.1、html代码1 <!-- 搜索区域 -->2 <div class="filter-container sousuo">3 <el-input v-model="listQuery.email" placeholder="根据邮箱查询" style="width: 200px;"/>4 <el-button type="primary" icon="el-icon-search" @click="searchData">5 查询6 </el-button>7 <el-button style="margin-left: 10px;" type="primary" icon="el-icon-edit" @click="addUserFormVisible = true">8 添加9 </el-button>10 </div>1112 <!-- ⽤户列表 -->13 <el-table v-loading="listLoading" :data="userList"14 element-loading-text="Loading" border stripe fit highlight-current-row>15 <el-table-column label="学员id">16 <template slot-scope="scope">17 {{ scope.row.id }}18 </template>19 </el-table-column>20 <el-table-column label="⽤户名">21 <template slot-scope="scope">22 {{ erName }}23 </template>24 </el-table-column>25 <el-table-column label="真实姓名">26 <template slot-scope="scope">27 {{ scope.row.realName }}28 </template>29 </el-table-column>30 <el-table-column label="邮箱" align="center">31 <template slot-scope="scope">32 <span>{{ scope.row.email }}</span>33 </template>34 </el-table-column>35 <el-table-column label="⼿机号" align="center">36 <template slot-scope="scope">37 <span>{{ scope.row.mobile }}</span>38 </template>39 </el-table-column>40 <el-table-column label="操作" align="center" width="230" class-name="small-padding fixed-width">41 <template slot-scope="scope">42 <el-button size="mini" type="danger" @click="deleteUser(scope.row.id)">43 删除44 </el-button>45 </template>46 </el-table-column>47 </el-table>3.2、分页html代码1 <!-- 分页 -->2 <div class="pagination">3 <el-pagination4 background5 :current-page="pagination.currentPage"6 :page-sizes="[5, 10, 20, 40]"7 :page-size="pagination.pageSize"8 layout="total, sizes, prev, pager, next, jumper"9 :total="pagination.totalCount"10 @size-change="handleSizeChange"11 @current-change="handleCurrentChange">12 </el-pagination>13 </div>3.3、js代码1 data() {2 return {3 pagination: {4 currentPage: 1, //初始页5 pageSize: 10, //每页的数据6 totalCount: 0 //总数据7 },8 userList: [],9 listLoading: true,10 // 搜索条件11 listQuery: {12 email: undefined,13 pageNum: 1,14 pageSize: 1015 },16 }17 }1819 methods: {20 //改变分页的每页的页数21 handleSizeChange(size) {22 this.pagination.pageSize = size23 this.listQuery.pageSize = size24 this.getUserList()25 console.log(this.pagination.pageSize) //每页下拉显⽰数据26 },27 // 改变分页的当前页⾯28 handleCurrentChange(currentPage) {29 this.pagination.currentPage = currentPage30 this.listQuery.pageNum = currentPage31 this.getUserList()32 console.log(this.pagination.currentPage) //点击第⼏页33 },34 // 查询35 searchData() {36 this.listQuery.pageNum = 137 this.pagination.currentPage = 138 this.getUserList()39 },40 // 获取⽤户列表41 getUserList() {42 this.listLoading = true43 getUserList(this.listQuery).then(response => {44 this.listLoading = false45 if (response.status === 1) {46 erList = erInfos47 this.pagination.totalCount = response.data.totalCount48 } else {49 this.$confirm(response.message)50 }51 }).catch(error => {52 this.listLoading = false53 })54 },55 }。

vue分页params传参数

vue分页params传参数

vue分页params传参数在vue中实现分页功能时,我们通常需要向后端传递一些参数,比如当前页码、每页数量等。

而params的方式可以将这些参数放在url中,非常方便。

下面是一个简单的示例:```<template><div><ul><li v-for='item inlist' :key='item.id'>{{ item.title }}</li></ul><div class='pagination'><a @click='goPage(1)'>首页</a><a v-if='currentPage > 1' @click='goPage(currentPage - 1)'>上一页</a><a v-if='currentPage < totalPages'@click='goPage(currentPage + 1)'>下一页</a><a @click='goPage(totalPages)'>尾页</a></div></div></template><script>export default {data() {return {list: [],currentPage: 1,pageSize: 10,totalCount: 0};},computed: {totalPages() {return Math.ceil(this.totalCount / this.pageSize);}},methods: {async getData() {const response = awaitfetch(`/api/list?page=${this.currentPage}&size=${this.pageS ize}`);const result = await response.json();this.list = result.list;this.totalCount = result.totalCount;goPage(page) {if (page < 1 || page > this.totalPages) {return;}this.currentPage = page;this.getData();}},mounted() {this.getData();}};</script>```在上面的代码中,我们使用了fetch函数发送了一个请求,其中的`page`和`size`参数就是我们要传递的参数。

自定义vue-awesome-swiper的pagination分页器样式

自定义vue-awesome-swiper的pagination分页器样式

⾃定义vue-awesome-swiper的pagination分页器样式环境:vue^2.4.2vue-awesome-swiper^2.6.7swiper^3.4.2成品图:功能:拖动或者切换下⼀个pagination点点宽度跟着过渡变换代码:<template><div class="m-topic-swiper"><swiper :options="swiperOption" :class="special"><swiper-slide v-for="(item, index) in content" :key="index"><router-link :to="url"><img class="m-topic-img" :src="item.imageUrl" alt=""></router-link></swiper-slide><div class="swiper-pagination" id="pagination" slot="pagination"></div></swiper></div></template>js:import { swiper, swiperSlide } from 'vue-awesome-swiper'import 'swiper/dist/css/swiper.css'export default {name: 'm-topic-swiper',props: ['content', 'special'],components: {swiper,swiperSlide},data() {return {swiperOption: { // 可写swiper⼀些原⽣配置pagination: '.swiper-pagination',loop: true,watchSlidesProgress : true,autoplay: 3000,speed: 600,onProgress: (swiper, progress) => { //进度函数返回拖动进度let n = this.content.lengthlet test = document.getElementById('pagination')if (test) {progress = parseInt((((progress - 1 / (n + 1)) / n * (n + 1)) * 100).toFixed(0)) //swiper3.XX版本不是从0开始,修正⼀下progress if(progress < 0){progress = 100 + progress}let nowNumber = Math.floor(progress * n / 100) === n ? n - 1 : Math.floor(progress * n / 100) //找出当前点点 let percent = (progress / 100 - (nowNumber / n)) * n //拖动占总份额多少let nextNumber = nowNumber + 1 //下⼀个要变化的点点if(nowNumber === n - 1){nextNumber = 0}let now = test.children[nowNumber]let next = test.children[nextNumber]let maxWidth = 0.3 // 点点最⼤宽度let minWidth = 0.08 //点点最⼩宽度let dif = maxWidth - minWidthnext.style.width = dif * percent + minWidth + 'rem'now.style.width = dif * (1 - percent) + minWidth + 'rem'for(let i = 0; i < test.children.length; i++) {if(i !== nowNumber && i !== nextNumber){test.children[i].style.width = minWidth + "rem"//防⽌拖动的太快数据丢失遍历动态给其他点点最⼩宽}}}}},}},}css:<style lang="postcss">.m-topic-swiper {.swiper-container {width: 100%;.m-topic-img {display: block;width: 100%;}.swiper-pagination {height: .23rem;font-family: PingFangSC-Regular;font-size: .156rem;color: #fff;letter-spacing: 0;line-height: .12rem;bottom: 0;}.swiper-pagination-bullet {background: #fff;opacity: 0.8;height: 0.08rem;border-radius: 0.06rem;width: 0.08rem;transition: all 0.2s; //可设置缓慢变化}.swiper-pagination-bullet-active {width: 30px;}}}</style>收⼯~~~。

Vue纯前端解决分页效果实现代码

Vue纯前端解决分页效果实现代码

Vue纯前端解决分页效果实现代码html:<div class="pagination-panel"><el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="index":page-sizes="[10, 20,50, 100]":page-size="pageSize"backgroundlayout="total, sizes, prev, pager, next, jumper":total="totalSize"next-text="下⼀页"prev-text="上⼀页"></el-pagination></div>JS<script>export default {data() {return {pageSize: 10,totalSize: null,index: 1,tableData: [],//el-table 绑定的数据tableDataALL: [],//所有返回的数据处理后赋值到tableDatatime: [], // 时间 yyyy-MM-dd hh:mm:ss};},methods: {getList() {this.tableData = this.tableDataALL.filter((item, index) =>index < this.index * this.pageSize &&index >= this.pageSize * (this.index - 1));this.totalSize = this.tableDataALL.length;},/*** @name: 分页*/handleSizeChange(val) {// console.log(`每页 ${val} 条`);this.pageSize = val;this.getList();},handleCurrentChange(val) {// console.log(`当前页: ${val}`);this.index = val;this.getList();},},};</script>。

vue2.0+ElementUI表格前端分页和后端分页

vue2.0+ElementUI表格前端分页和后端分页

vue2.0+ElementUI表格前端分页和后端分页之前写过⼀篇博客,当时对element ui框架还不太了解,分页组件⽤ html + css ⾃⼰写的,⽐较⿇烦,⽽且只提到了后端分页(见)。

由于⼯作上的需要,写了很多表格,因此对于分页有了新的理解,在这⾥重新总结⼀下,⽤ element ui ⾃带的分页组件实现前端分页和后端分页。

⾸先我们将分页功能的代码封装成⼀个组件,这样以后要⽤的时候可以直接拿,这⾥需要⼀个预备知识就是⽗⼦组件的交互,不清楚的可以⾃⼰先看⼀下。

新建pagination.vue⽂件,内容如下:<template><div :class="{'hidden':hidden}" class="pagination-container"><el-pagination:background="background":current-page.sync="currentPage":page-size.sync="pageSize":layout="layout":page-sizes.sync="pageSizes":pager-count.sync="pageCount":pager-count="pageCount":total="total"v-bind="$attrs"@size-change="handleSizeChange"@current-change="handleCurrentChange"/></div></template><script>import { scrollTo } from "@/utils/scroll-to";export default {name: "Pagination",props: {total: {required: true,type: Number},page: {type: Number,default: 1},limit: {type: Number,default: 10},pageCount: {type: Number,default: 5},pageSizes: {type: Array,default() {return [10, 20, 30, 50];}},layout: {type: String,default: "total, sizes, prev, pager, next, jumper"},background: {type: Boolean,default: true},autoScroll: {type: Boolean,default: true},hidden: {type: Boolean,default: false}},computed: {currentPage: {get() {return this.page;},set(val) {this.$emit("update:page", val);}},pageSize: {get() {return this.limit;},set(val) {this.$emit("update:limit", val);}}},methods: {handleSizeChange(val) {this.$emit("pagination", { page: this.currentPage, limit: val });if (this.autoScroll) {scrollTo(0, 800);}},handleCurrentChange(val) {this.$emit("pagination", { page: val, limit: this.pageSize });if (this.autoScroll) {scrollTo(0, 800);}}}};</script><style scoped>.pagination-container {background: #fff;padding: 32px 16px;}.pagination-container.hidden {display: none;}</style>新建⽗组件myTable.vue,引⼊pagination插件<el-tablev-loading="listLoading":key="tableKey":data="list"borderfitstyle="width: 100%;"><!-- 表格内容省略 -->…………</el-table><!-- 引⼊pagination插件 --><paginationv-show="total>0":total="total":page.sync="listQuery.page":limit.sync="listQuery.limit"@pagination="getList"/>注册变量、⽅法export default {data() {return {list: null,total: 0,listQuery: {page: 1,limit: 10}}}, created() {this.getList();}methods: {// 获取列表数据getList() {}}}在⾸次进⼊页⾯, created 阶段以及每次点击页码时调⽤ getList() ⽅法,getList() ⽅法根据前端分页和后端分页的不同需求有不同写法。

VUE-002-前端分页(el-pagination)展示数据

VUE-002-前端分页(el-pagination)展示数据

VUE-002-前端分页(el-pagination)展⽰数据在web开发过程中,通常使⽤表格展⽰数据,在数据较多时采⽤分页的⽅式展⽰给⽤户。

分页⽅式有前端假分页和后端分页两种实现⽅式,此⽂仅记录前端假分页实现⽅式。

第⼀步:添加分页组件(el-pagination)在表格下⽅,添加的代码如下所⽰:<template><el-table>...</el-table><el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="currentPage":page-sizes="[15, 30, 50, 100]":page-size="pageSize"layout="total, sizes, prev, pager, next, jumper":total="currentTotal"></el-pagination></template><script>...</script>第⼆步:添加分页所需的变量,如下所⽰:<script>export default {methods: {...},data() {return {currentPage: 1,pageSize: 30,currentTotal: 0,tableData: []}}}</script>第三步:添加相应的分页⽅法,如下所⽰:<script>export default {methods: {handleSizeChange(val) {this.pageSize = val;console.log(`每页 ${val} 条`);},handleCurrentChange(val) {this.currentPage = val;console.log(`当前页: ${val}`);}},data() {return {currentPage: 1,pageSize: 30,currentTotal: 0,tableData: []}}}</script>第四步:修改查询按钮逻辑,在成功查询后,更新数据的总数量。

vue实现分页的三种效果

vue实现分页的三种效果

vue实现分页的三种效果本⽂实例为⼤家分享了vue实现分页效果的具体代码,供⼤家参考,具体内容如下第⼀种效果:数据量不⼤时可采⽤<!doctype html><html lang="en"><head><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8"><script src="vue.min.js" type="text/javascript"></script><title>vue分页</title><style type="text/css">ul{list-style:none;margin:0;}.pagetation_info{width:100%;height:27px;padding:20px 0;}ul.pagetation_box{float:right;height:100%;padding:0 60px;}ul.pagetation_box li{float:left;height:100%;border:1px solid #e6ecef;border-radius: 3px;background-color: #f8f8f8;margin:0 5px;padding:0 10px;color:#263238;cursor: pointer;text-align: center;line-height: 22px;} ul.pagetation_box li a{text-decoration: none;color:#263238;font-size: 12px;}ul.pagetation_box li.active{background-color: #FF4646;border-color:#FF4646;}ul.pagetation_box li.active a{color:#fff;}ul.pagetation_box li.prev,ul.pagetation_box li.next{width:7px;}ul.pagetation_box li:hover{background-color: #FF4646;border-color:#FF4646;}ul.pagetation_box li:hover a{color:#fff;}.num_total{float:right;height:100%;padding-top:3px;padding-bottom:3px;}.num_total>span{color:#FC5B27;}</style></head><body id="app-body"><div class="pagetation_info clearfix"><ul class="pagetation_box"><li class="firstPage" @click=" page.currentpage = 0 "><a href="javascript:;" >⾸页</a></li><li class="prev" v-show=" page.currentpage > 0 " @click=" page.currentpage-- "><a href="javascript:;" >&lt;</a></li><li v-for="d in page.totalpage" @click=" page.currentpage = $index " :class=" page.currentpage == $index ? 'active' : '' "><a href="javascript:;" >{{$index + 1}}</a></li><li class="next" v-show=" page.currentpage < page.totalpage - 1 " @click=" page.currentpage++ "><a href="javascript:;" >&gt;</a></li><li class="lastPage" @click=" page.currentpage = page.totalpage - 1 "><a href="javascript:;" >尾页</a></li></ul><div class="num_total">共 <span>{{page.totalrecord}}</span> 条信息,共 <span>{{page.totalpage}}</span> 页</div></div><script>new Vue({el: "#app-body",data : {"page" : {"totalrecord" : 100,"currentpage" : 0,"pagesize" : 20,"totalpage" : 5,},},watch : {"page.currentpage" : function(val){var _this=this;_this._getList();},},methods : {_getList:function(){}},ready : function(){var _this = this;}});</script></body></html>第⼆种效果:当数据量较⼤时使⽤<!doctype html><html lang="en"><head><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8"><script src="vue.min.js" type="text/javascript"></script><title>vue分页</title><style type="text/css">ul{list-style:none;margin:0;}.pagetation_info{width:100%;height:24px;padding:20px 0;}ul.pagetation_box{float:right;height:100%;padding:0 60px;}ul.pagetation_box li{float:left;height:100%;border:1px solid #e6ecef;background-color: #f8f8f8;margin:0 5px;padding:0 10px;color:#263238;cursor: pointer;text-align: center;line-height: 22px;}ul.pagetation_box li a{text-decoration: none;color:#263238;font-size: 12px;}ul.pagetation_box li.active{background-color: #FF4646;border-color:#FF4646;}ul.pagetation_box li.active a{color:#fff;}ul.pagetation_box li.prev,ul.pagetation_box li.next{width:7px;}ul.pagetation_box li:hover{background-color: #FF4646;border-color:#FF4646;}ul.pagetation_box li:hover a{color:#fff;}ul.pagetation_box li.more{width:24px;padding:0;background: url(../img/public/page_more.png) no-repeat center center;border:none;}.num_total{float:right;height:100%;line-height:22px;padding-top:3px;padding-bottom:3px;}.num_total>span{color:#FC5B27;}</style></head><body id="app-body"><div class="pagetation_info clearfix"><ul class="pagetation_box"><li class="firstPage" @click="page.currentPage=1"><a href="javascript:;" >⾸页</a></li><li class="prev" v-show="page.currentPage != 1" @click="page.currentPage-- && _gotoPage(page.currentPage)"><a href="javascript:;" >&lt;</a></li><li v-for="index in pages" @click="_gotoPage(index)" :class="{'active':page.currentPage == index}"><a href="javascript:;" >{{index}}</a></li><li class="next" v-show="page.allPages != page.currentPage && page.allPages != 0 " @click="page.currentPage++ && _gotoPage(page.currentPage)"><a href="javascript:;" >&gt;</a></li> <li class="lastPage" @click="page.currentPage=page.allPages"><a href="javascript:;" >尾页</a></li></ul><div class="num_total">共 <span>{{page.allRecords}}</span> 条信息,共 <span>{{page.allPages}}</span> 页</div></div><script>new Vue({el : "#app-body",data : {"page":{"currentPage":1,"pagesize":10,"allRecords":100,"allPages":10,"showItem":4,}},watch : {"page.currentpage" : function(val){var _this=this;_this._getList();},},computed:{pages:function(){var _this=this;var p=[];if( _this.page.currentPage < _this.page.showItem ){var i = Math.min(_this.page.showItem,_this.page.allPages);while(i){p.unshift(i--);}}else{var middle = _this.page.currentPage - Math.floor(_this.page.showItem / 2 ),i = _this.page.showItem;console.log(middle,i);if( middle > (_this.page.allPages - _this.page.showItem) ){middle = (_this.page.allPages - _this.page.showItem) + 1}while(i--){p.push( middle++ );}}return p;},},methods : {_gotoPage:function(i){var _this=this;if(i == _this.page.currentPage) return;_this.page.currentPage = i;},},ready : function(){var _this = this;_this.pages;}});</script></body></html>第三种效果:当数据量很⼤时使⽤<!doctype html><html lang="en"><head><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8"><script src="vue.min.js" type="text/javascript"></script><title>vue分页</title><style type="text/css">ul{list-style:none;margin:0;}.pagetation_info{width:100%;height:30px;padding:20px 0;}ul.pagetation_box{float:right;height:100%;padding:0 60px;}ul.pagetation_box li{float:left;height:100%;border:1px solid #e6ecef;background-color: #f8f8f8;margin:0 5px;padding:0 10px;color:#263238;cursor: pointer;text-align: center;line-height: 27px;} ul.pagetation_box li a{text-decoration: none;color:#263238;font-size: 12px;}ul.pagetation_box li.active{background-color: #03a9f4;border-color:#03a9f4;}ul.pagetation_box li.active a{color:#fff;}ul.pagetation_box li.more{background-color: #fff}ul.pagetation_box li.prev,ul.pagetation_box li.next{width:7px;}ul.pagetation_box li.prevDisabled,ul.pagetation_box li.nextDisabled{width:7px;}ul.pagetation_box li.prevDisabled a,ul.pagetation_box li.nextDisabled a{color:#ccc;}ul.pagetation_box li.prevDisabled:hover, ul.pagetation_box, li.nextDisabled:hover{background-color: #f8f8f8;border-color:#e6ecef;}ul.pagetation_box li.prevDisabled:hover a,ul.pagetation_box li.nextDisabled:hover a{color:#ccc;}ul.pagetation_box li:hover{background-color: #03a9f4;border-color:#03a9f4;}ul.pagetation_box li.more:hover{background-color: #fff;border:none;}ul.pagetation_box li:hover a{color:#fff;}ul.pagetation_box li.more{padding:0;border:none;line-height:22px;}.num_total{float:right;height:100%;line-height:22px;padding-top:3px;padding-bottom:3px;}.num_total>span{color:#FC5B27;}</style></head><body id="app-body"><div class="pagetation_info clearfix"><ul class="pagetation_box"><li class="prev" v-if="page.prevBtn==true" @click="_gotoPage('prev')"><a href="javascript:;" >&lt;</a></li><li class="prevDisabled" v-if="page.prevBtn==false"><a href="javascript:;" >&lt;</a></li><li :class="{active:page.currentPage==index}" v-for="index in page.p1" @click="_gotoPage(index)"><a href="javascript:;" >{{index}}</a></li> <li class="more" v-if="page.isShowMore1">...</li><li :class="{active:page.currentPage==index}" v-for="index in page.p2" @click="_gotoPage(index)"><a href="javascript:;" >{{index}}</a></li> <li class="more" v-if="page.isShowMore2">...</li><li :class="{active:page.currentPage==index}" v-for="index in page.p3" @click="_gotoPage(index)"><a href="javascript:;" >{{index}}</a></li> <li class="next" v-if="page.nextBtn==true" @click="_gotoPage('next')"><a href="javascript:;" >&gt;</a></li><li class="nextDisabled" v-if="page.nextBtn==false"><a href="javascript:;" >&gt;</a></li></ul><div class="num_total">共 <span>{{page.allItems}}</span> 条信息,共 <span>{{page.allPages}}</span> 页</div></div><script>var App=new Vue({el : "#app-body",data : {"page" : {"currentPage":1,"allPages":10,"allItems":100,"pagesize":10,"showBtn":5,"nextBtn":true,"prevBtn":false,"isShowMore1":false,"isShowMore2":false,"p1":[],"p2":[],"p3":[],},},watch : {"page.currentpage" : function(val){var _this=this;_this._getList();},},computed:{pagination:function(){var _this=this;var i = _this.page.showBtn-2;if(_this.page.currentPage==_this.page.allPages){_this.page.nextBtn=false;}var p1=[],p2=[],p3=[];if( _this.page.allPages < _this.page.showBtn ){_this.page.isShowMore1=false;_this.page.isShowMore2=false;i = _this.page.allPages;while(i){p1.unshift(i--);}}else if(_this.page.allPages > _this.page.showBtn && _this.page.allPages < _this.page.showBtn+1){_this.page.isShowMore1=false;_this.page.isShowMore2=true;if(_this.page.currentPage<3){p1=[1,2,3];p3.push(_this.page.allPages);}else{p1=[1];i=_this.page.showBtn-2;while(i--){p3.unshift( _this.page.allPages-- );}}}else{if(_this.page.currentPage<3){p1=[1,2,3];p3.push(_this.page.allPages);_this.page.isShowMore1=false;_this.page.isShowMore2=true;}else if(_this.page.currentPage>_this.page.allPages-2){_this.page.isShowMore1=true;_this.page.isShowMore2=false;p1=[1];i=3;var allPages = _this.page.allPages;while(i--){p3.unshift( allPages-- );}}else{_this.page.isShowMore1=true;_this.page.isShowMore2=true;if(_this.page.currentPage==3){_this.page.isShowMore1=false;}else if(_this.page.currentPage==_this.page.allPages-1){_this.page.isShowMore2=false;}p1=[1];p3.push(_this.page.allPages);var middle=parseInt((_this.page.showBtn-2)/2);var start=_this.page.currentPage-middle;i = _this.page.showBtn-2;while(i--){p2.push(start++);}}}_this.page.p1=p1;_this.page.p2=p2;_this.page.p3=p3;}},methods : {_gotoPage:function(n){var _this=this;if(n==_this.page.currentPage){return;}if(n==1){_this.page.prevBtn=false;}else{_this.page.prevBtn=true;}if(n==_this.page.allPages){_this.page.nextBtn=false;}else{_this.page.nextBtn=true;}if(typeof n=='number'){_this.page.currentPage=n;}else if(n=='next'){_this.page.currentPage++;}else if(n=='prev'){_this.page.currentPage--;}if(_this.page.currentPage==_this.page.allPages){_this.page.nextBtn=false;}_this.pagination;},},ready : function(){var _this = this;_this.pagination;}});</script></body></html>关于vue.js组件的教程,请⼤家点击专题进⾏学习。

Element-ui组件--pagination分页的使用

Element-ui组件--pagination分页的使用

Element-ui组件--pagination分页的使⽤ ⼀般在写前端页⾯时,经常会遇到分页这样的效果,element-ui中便有这样的插件,⽤vue框架使⽤的很⽅便,在此做⼀总结:<template> <div class="block"><el-pagination@size-change="handleSizeChange" // pageSize改变时会触发@current-change="handleCurrentChange" // currentPage改变时会触发:current-page="currentPage":page-sizes="[100, 200, 300, 400]"// 这是下拉框可以选择的,选择⼀夜显⽰⼏条数据:page-size="100" // 这是当前煤业显⽰的条数layout="total, sizes, prev, pager, next, jumper":total="400" // 这个是总共有多少条数据,把后台获取到的数据总数复制给total就可以了></el-pagination></div></template><script>export default {methods: {handleSizeChange(val) {console.log(‘每页’ + val + ‘条’);},handleCurrentChange(val) {console.log(`当前页:`+val);}},data() {return {total:'0',currentPage: 4};}}</script>其实也没有什么好的内容,只是今天在做项⽬时遇到了,并且学习了这个组件,相当于在此做个笔记吧!。

ElementUIpagination分页自定义配置

ElementUIpagination分页自定义配置

ElementUIpagination分页⾃定义配置如何使⽤ ElementUI ⾃定义分页呢?尽管ElementUI⽐较全⾯的提供了分页,但实际开发中的需求是多种多样的。

⽐如我需要把下图中的下拉选择每页的数据条数,换成可以⼿动输⼊的形式,并且把他的位置放到前往xx页的左边位置。

实现代码如下:<!-- 分页 --><el-paginationclass="pagination"@size-change="sizeChangeHandle"@current-change="currentChangeHandle"background:current-page="currentPage":page-sizes="[]":page-size="pageSize"layout="total, prev, pager, next, slot, jumper":total="ipData.length"><span class="pageSizeInput"><el-input class="pageSizeBorder" v-model.number="pageSize" @input="handlePageSize"></el-input> 条/页</span></el-pagination><script>// 改变每⼀页的数据条数sizeChangeHandle (val) {this.pageSize = val},// 改变当前所在页currentChangeHandle (val) {this.currentPage = val},// 监听pageSize⽂本框的变化,当pageSize为空时,设置pageSize的值为0,以防报错handlePageSize () {if (!this.pageSize) {this.pageSize = 0}}</script>分析上述代码:在layout属性⽤于控制分页器的排列位置,可以在合适的位置添加⼀个slot,然后在el-pagination标签中包裹标签,实现⾃定义分页内容。

vue pagination分页 参数

vue pagination分页 参数

vue pagination分页参数摘要:1.Vue Pagination 介绍2.Vue Pagination 的参数a.总页数b.每页显示的条目数c.当前页d.总条目数e.分页组件的大小f.是否显示总条目数g.是否显示分页组件h.分页组件的位置i.分页组件的样式3.Vue Pagination 的使用方法a.引入Vue Pagination 组件b.在Vue 实例中注册组件c.在模板中使用组件d.绑定数据和事件4.Vue Pagination 的示例正文:Vue Pagination 是一个基于Vue.js 的前端分页组件,它可以帮助开发者轻松实现分页功能。

在使用Vue Pagination 时,需要设置一些参数以满足不同的需求。

首先,Vue Pagination 的参数主要包括以下几个方面:1.总页数(totalPages):设置分页的总页数。

2.每页显示的条目数(itemsPerPage):设置每页显示的条目数量。

3.当前页(currentPage):设置当前显示的页码。

4.总条目数(totalItems):设置数据的总条目数。

5.分页组件的大小(size):设置分页组件的大小。

6.是否显示总条目数(showTotalItems):设置是否在分页组件中显示总条目数。

7.是否显示分页组件(showPagination):设置是否显示分页组件。

8.分页组件的位置(position):设置分页组件的位置。

9.分页组件的样式(style):设置分页组件的样式。

接下来,我们来看一下Vue Pagination 的使用方法:1.引入Vue Pagination 组件:首先需要在项目中引入Vue Pagination 组件。

可以通过npm 或直接下载源码的方式引入。

2.在Vue 实例中注册组件:在Vue 实例中注册Vue Pagination 组件,例如:`ponent("vue-pagination", VuePagination)`。

vue3 el-pagination 使用

vue3 el-pagination 使用

在Vue 3中,使用Element Plus库中的<el-pagination>组件可以实现分页效果。

以下是一个基本的示例,展示了如何在Vue 3中使用<el-pagination>组件:首先,确保你已经安装了Element Plus库。

如果没有安装,可以通过npm或yarn进行安装:bash复制代码npm install element-plus --save# 或者yarn add element-plus然后,在你的Vue组件中引入<el-pagination>组件:vue复制代码<template><div><!-- 表格或其他需要分页的内容 --><el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" style="width: 100%"><!-- 表格列定义 --><el-table-column prop="name" label="姓名"></el-table-column><el-table-column prop="age" label="年龄"></el-table-column><!-- 其他列 --></el-table><!-- 分页组件 --><el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="currentPage":page-size="pageSize"layout="total, sizes, prev, pager, next, jumper":total="tableData.length"></el-pagination></div></template><script>import { ref } from 'vue';export default {setup() {const tableData = ref([{ name: '张三', age: 25 },{ name: '李四', age: 30 },// 其他数据]);const currentPage = ref(1); // 默认页码为1const pageSize = ref(10); // 默认一页显示10条// 处理每页显示条数改变时的事件const handleSizeChange = (newSize) => {pageSize.value = newSize;};// 处理页码改变时的事件const handleCurrentChange = (newPage) => {currentPage.value = newPage;};return {tableData,currentPage,pageSize,handleSizeChange,handleCurrentChange,};},};</script>在这个示例中,我们首先在<el-table>组件中使用slice方法来根据当前的页码和每页显示的条数来切割数据,从而只显示对应的数据行。

VUE使用el-pagination添加分页功能

VUE使用el-pagination添加分页功能

VUE使⽤el-pagination添加分页功能⼀、添加控件<el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="currentPage":page-sizes="[30, 25, 20, 15,10]":page-size="pageSize"layout="total, sizes, prev, pager, next, jumper":total=suiteList.length></el-pagination>⼆、js部分data() {return {suiteData: [],suiteList: [],pageSize:10,currentPage: 1};},mounted() {this.getData();},methods:{//获取数据getData() {this.$axios.get("/api/testCase").then((res)=> {this.caseList= res.data.result;this.getPageData()});},// 根据分页设置的数据控制每页显⽰的数据条数及页码跳转页⾯刷新getPageData() {let start = (this.currentPage - 1) * this.pageSize;let end = start + this.pageSize;this.caseData = this.caseList.slice(start, end);},// 分页⾃带的函数,当pageSize变化时会触发此函数handleSizeChange(val) {this.pageSize = val;this.getPageData();},// 分页⾃带函数,当currentPage变化时会触发此函数handleCurrentChange(val) {this.currentPage = val;this.getPageData();}}三、实现效果转⾃:https:///p/e57ab354e449。

Vue中ElementUI分页组件Pagination的使用方法

Vue中ElementUI分页组件Pagination的使用方法

Vue中ElementUI分页组件Pagination的使⽤⽅法Vue中ElementUI分页组件Pagination的使⽤,供⼤家参考,具体内容如下⼀、概要ElementUI 提供了 el-pagination 组件,只要配置相应得参数和事件,即可实现分页。

⼆、实现1、基本⽤法<div class="pagination"><el-paginationbackgroundlayout="total, sizes, prev, pager, next, jumper":current-page="tablePage.pageNum":page-size="tablePage.pageSize":page-sizes="pageSizes":total="tablePage.total"@size-change="handleSizeChange"@current-change="handlePageChange"/></div>data() {return {tablePage: {pageNum: 1, // 第⼏页pageSize: 10, // 每页多少条total: 0 // 总记录数},pageSizes: [10, 20, 30]}},methods: {handlePageChange(currentPage) {this.tablePage.pageNum = currentPage// 在此刷新数据},handleSizeChange(pageSize) {this.tablePage.pageSize = pageSize// 在此刷新数据}}2、后端分页的实现实现思路:向后台发送请求,传⼊pageNum、pageSize两参数,直接得到相应的分页数据。

vue实现分页组件

vue实现分页组件

vue实现分页组件创建pagination.vue/** 所需参数* total Number 总页数* current Number 当前页⾯下标* pageSize Number 页⾯显⽰条数* sizes Array 页⾯条数容器数组* jump(index) function 重新获取数据的⽅法* getPageSize(index) function 更改页⾯显⽰条数的⽅法*/<style lang="less">@color:#1199F0;.page-wrapper{padding:20px 10px;ul{overflow: hidden;display: table;margin: 0 auto;height: 50px;list-style: none;li{float:left;}}.paging-size{height:30px;margin-right:20px;select{width:50px;height:30px;text-align:center;border:1px solid @color;}}.paging-item{height: 30px;line-height: 30px;margin: 3px;padding-left:12px;padding-right:12px;border-radius: 5px;font-size: 12px;color: #666;cursor: pointer;&:hover,&.current{color:#fff;background-color: @color;}}.paging-jump{margin-left:20px;margin-top:3px;height:30px;font-size:0;overflow: hidden;input[type="number"]{float: left;padding:0 5px;width:50px;height:28px;text-align:center;border:1px solid @color;}input[type="button"]{float: left;padding:0 12px;height:30px;border:none;color:#fff;background-color: @color;}}}</style><template><div class="page-wrapper"><ul><li class="paging-size"><select @change="getPageSize"><option v-for="i in sizes" :value="i" :selected="i==pageSize">{{i}}</option></select></li><li class="paging-item" v-if="current!=1" @click='jump(1)'>⾸页</li><li class="paging-item" v-if="current-1>0" @click='jump(current-1)'>上⼀页</li><li class="paging-item" v-if="current-2>0" @click='jump(current-2)'>{{current-2}}</li><li class="paging-item" v-if="current-1>0" @click='jump(current-1)'>{{current-1}}</li><li class="paging-item current" @click='jump(current)'>{{current}}</li><li class="paging-item" v-if="total-current>1" @click='jump(current+1)'>{{current+1}}</li> <li class="paging-item" v-if="total-current>2" @click='jump(current+2)'>{{current+2}}</li> <li class="paging-item" v-if="total-current>1" @click='jump(current+1)'>下⼀页</li><li class="paging-item" v-if="current!=total" @click='jump(total)'>尾页</li><li class="paging-jump"><input type="number" v-model="jumpPage" :max="total" min="0"/><input type="button" value="跳转" @click='jump(jumpPage)'/></li></ul></div></template><script>export default {data(){return {jumpPage:0}},props:{total:Number,current:Number,pageSize:Number,sizes:{type:Array,default:function(){return [15,25,35]}}},mounted(){if(this.total-this.current>1){this.jumpPage=this.current+1;}else{this.jumpPage=1;}},watch:{current(){if(this.total-this.current>1){this.jumpPage=this.current+1;}else{this.jumpPage=1;}}},methods:{jump(index){index=Number(index);if (this.current != index && index > 0 && index < this.total + 1) {this.$emit('jump', index);}},getPageSize(e){let pageSize=Number(e.target.value);this.$emit('getPageSize',pageSize);}}}</script>index.vue中注册components:{'v-pagination':(resolve)=>{require(['components/pagination'],resolve);}}index.vue中使⽤<v-pagination:total="total":current="current":pageSize="pageSize"@getPageSize="getPageSize"@jump="jump"></v-pagination>完整index.vue代码<template><div class="wrapper" v-swipeleft='left' v-swiperight='right'><v-pagination:total="total":current="current":pageSize="pageSize"@getPageSize="getPageSize"@jump="jump"></v-pagination></div></template><script>export default {data () {return {total:20,current:4,pageSize:25}},methods:{jump(index){this.current=index;},getPageSize(pageSize){this.pageSize=pageSize;}},components:{'v-pagination':(resolve)=>{require(['components/pagination'],resolve); }}}</script><style lang="less" scoped="scoped">.wrapper{height:100%;width:100%;}</style>。

vue实现分页功能

vue实现分页功能

vue实现分页功能本⽂实例为⼤家分享了vue实现分页功能的具体代码,供⼤家参考,具体内容如下使⽤组件分页⾃⼰写分页⼀、组件分页<el-paginationlayout="prev, pager, next"@current-change="changePageNum":current-page="pageNum":page-size="pageSize":total="total"></el-pagination>data(){return{tableData: [],total: 0,//总数pageNum: 1,//当前页pageSize: 15,//每页显⽰数量}}mounted: function () {this.query();//加载页⾯时,获取数据},methods:{//切换页码changePageNum: function (val) {this.pageNum = val;this.query();},//通过接⼝,获取数据query: function () {var data = {name: || '',fleetId: this.FleetId,pageNum: this.pageNum,//当前页pageSize: this.pageSize//查询个数};RoleManage.getRole(data).then(res => {var data = res;if (res.success) {this.tableData = data.obj.list;this.total = data.obj.total; ='';} else {this.$message('查询失败');}}).catch(err => {// 异常情况console.log(err);});},}组件分页效果⼆、⾃⼰构建分页有些时候需要根据需求⾃⼰写分页1、分页样式2、上下切页//调度-系统通讯录分页dispatchCourentPage: 1,//调度-系统通讯录当前选中标签标记dispatchCourentIndex: 1,//调度-系统通讯录更多标记项:组iddispatchMorecommandGroupId: '',dispatchTotlePage: 0,//上页handleLastPage() {if (this.dispatchCourentPage === 1) return;this.dispatchCourentPage -= 1;let index = this.dispatchCourentIndex;if (this.dispatchMorecommandGroupId != '') {this.queryBookMoreBygroupId(this.dispatchMorecommandGroupId);} else {this.queryBookmember(index);}},//下页handleNextPage() {if (this.dispatchCourentPage === this.dispatchTotlePage) return;this.dispatchCourentPage += 1;let index = this.dispatchCourentIndex;if (this.dispatchMorecommandGroupId != '') {this.queryBookMoreBygroupId(this.dispatchMorecommandGroupId);} else {this.queryBookmember(index);}}三、使⽤监听属性控制分页显⽰computed: {limitData() {let data = [...this.table1Datas];return data;},// 因为要动态计算总页数,所以还需要⼀个计算属性来返回最终给 Table 的 data dataWithPage() {const data = this.limitData;const start = this.current * this.size - this.size;const end = start + this.size;return [...data].slice(start, end);},}四、js控制分页,计算总页数⽅法1/***根据数据条数与每页多少条数据计算页数* totalnum 数据条数* limit 每页多少条*/pageCount(totalnum, limit) {return totalnum > 0 ? ((totalnum < limit) ? 1 : ((totalnum % limit)(parseInt(totalnum / limit) + 1): (totalnum / limit))) : 0;},⽅法2/*** 分页的总页数算法* 总记录数:totalRecord* 每页最⼤记录数:maxResult*/function pageCount() {totalPage = (totalRecord + maxResult -1) / maxResult;}⽅法3 推荐totalPage = Math.floor((totalRecord +maxResult -1) /maxResult );以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

Element-ui(el-table、el-pagination)实现表格分页

Element-ui(el-table、el-pagination)实现表格分页

Element-ui(el-table、el-pagination)实现表格分页HTML代码:(重点关注el-table中:data数据的绑定)el-pagination中:layout代表组件布局,⼦组件名⽤逗号分隔属性: total代表总条⽬数事件: current-change⽤于监听页数改变,⽽内容也发⽣改变<template><div><el-tableref="multipleTable":data="tableData.slice((currentPage-1)*pagesize,currentPage*pagesize)"tooltip-effect="dark"style="width: 100%"@selection-change="handleSelectionChange"><el-table-columntype="selection"width="55"></el-table-column><el-table-columnprop="name"label="姓名"width="120"></el-table-column><el-table-columnprop="age"label="年龄"width="120"></el-table-column><el-table-columnprop="sex"label="性别"width="120"></el-table-column><el-table-columnprop="department"label="部门"width="150"></el-table-column><el-table-columnprop="floor"label="楼层"width="120"></el-table-column><el-table-columnprop="area"label="区域"width="120"></el-table-column><el-table-column label="操作"><template slot-scope="scope"><el-buttonsize="mini"@click="handleEdit(scope.$index, scope.row)">修改</el-button><el-buttonsize="mini"type="danger"@click="handleDelete(scope.$index, scope.row)">删除</el-button></template></el-table-column></el-table><div style="text-align: center;margin-top: 30px;"><el-paginationbackgroundlayout="prev, pager, next":total="total"@current-change="current_change"></el-pagination></div></div></template>js代码:(addUser函数中请求的是⽤express搭建的服务器,tableData存放返回的json数据)export default {name: "dataList",data() {return {tableData: [],multipleSelection: [],total: 0,pagesize:10,currentPage:1}},methods: {addUser() {this.$http({method: 'GET',url: 'http://127.0.0.1:8080/api/users',}).then(res => {console.log(res);if (!res.data.errno) {this.tableData = ers;this.total= res.data.totalnum;}}).catch(function (error) {console.log(error);});},current_change:function(currentPage){this.currentPage = currentPage;}, mounted: function () { this.addUser(); }}最终效果:。

vue实现分页

vue实现分页

vue实现分页1 新建 pager.js ⽂件/*** [pagination 分页组件]* @param {Number} total [数据总条数]* @param {Number} display [每页显⽰条数 default:10]* @param {Number} current [当前页码 default:1]* @param {Number} pagegroup [分页条数(奇数) default:5]* @param {Event} pagechange [页码改动时 dispatch ]* @return {[type]} [description]*/ponent('pagination', {template: '#template_pagination',props: {total: { // 数据总条数type: Number,default: 0},display: { // 每页显⽰条数type: Number,default: 10},current: { // 当前页码type: Number,default: 1},pagegroup: { // 分页条数 -- 奇数type: Number,default: 5,coerce: function (v) {v = v > 0 ? v : 5;return v % 2 === 1 ? v : v + 1;}}},computed: {page: function () { // 总页数return Math.ceil(this.total / this.display);},grouplist: function () { // 获取分页页码var len = this.page, temp = [], list = [], count = Math.floor(this.pagegroup / 2), center = this.current;if (len <= this.pagegroup) {while (len--) { temp.push({ text: this.page - len, val: this.page - len }); };return temp;}while (len--) { temp.push(this.page - len); };var idx = temp.indexOf(center);(idx < count) && (center = center + count - idx);(this.current > this.page - count) && (center = this.page - count);temp = temp.splice(center - count - 1, this.pagegroup);do {var t = temp.shift();list.push({text: t,val: t});} while (temp.length);if (this.page > this.pagegroup) {(this.current > count + 1) && list.unshift({ text: '...', val: list[0].val - 1 });(this.current < this.page - count) && list.push({ text: '...', val: list[list.length - 1].val + 1 });}return list;}},methods: {setCurrent: function (idx) {if (this.current != idx && idx > 0 && idx < this.page + 1) {this.current = idx;this.$emit('pagechange', this.current);}}}}); 2 前端:@{ViewBag.Title = "About";}<script src="~/Scripts/vue.min.js"></script><script src="~/Scripts/pager/Pager.js"></script><!-- 模板 --><script type="text/template" id="template_pagination"><nav><ul class="pagination"><li :class="{'disabled': current == 1}"><a href="javascript:;" v-on:click="setCurrent(1)"> ⾸页 </a></li><li :class="{'disabled': current == 1}"><a href="javascript:;" v-on:click="setCurrent(current - 1)"> 上⼀页 </a></li><li v-for="p in grouplist" :class="{'active': current == p.val}"><a href="javascript:;" v-on:click="setCurrent(p.val)"> {{ p.text }} </a></li> <li :class="{'disabled': current == page}"><a href="javascript:;" v-on:click="setCurrent(current + 1)"> 下⼀页</a></li><li :class="{'disabled': current == page}"><a href="javascript:;" v-on:click="setCurrent(page)"> 尾页 </a></li></ul><ul class="pagination pull-right"><li><span> 共 {{ total }} 条数据 </span></li><li><span> 每页显⽰ {{ display }} 条数据 </span></li><li><span> 共 {{ page }} 页 </span></li><li><span> 当前第 {{ current }} 页 </span></li></ul></nav></script><div><div id="app"><div class="container"><h1> Vue 分页组件 </h1><pagination :total="total" :current.sync="current" v-on:pagechange="pagechange"></pagination> <pre>{{ $data|json }}</pre><pre>{{ current }}</pre></div></div><div id="app01"><div class="container"><h1> Vue 分页组件 </h1><pagination :total="total" :current.sync="current" v-on:pagechange="pagechange"></pagination> <pre>{{ $data|json }}</pre><pre>{{ current }}</pre><code>sasasasas</code></div></div></div><script>new Vue({el: '#app',data: {total: 81, // 记录总条数display: 10, // 每页显⽰条数current: 1 // 当前第n页,也可以 watch current 的变化},methods: {pagechange: function (p) {this.current = p;// 页码改变event , p 为新的 currentconsole.log('pagechange', p);}}});new Vue({el: '#app01',data: {total: 81, // 记录总条数display: 10, // 每页显⽰条数current: 1 // 当前第n页,也可以 watch current 的变化},methods: {pagechange: function (p) {this.current = p;// 页码改变event , p 为新的 currentconsole.log('pagechange', p);}}});</script> 展⽰:。

AntDesignvue学习笔记(八)Table服务端分页使用

AntDesignvue学习笔记(八)Table服务端分页使用

AntDesignvue学习笔记(⼋)Table服务端分页使⽤本⽂是AntDesign后端分页⽅法1、设置pagination<a-table :columns="columns" :dataSource="data" :rowSelection="rowSelection" :pagination="pagination"><a slot="action" href="javascript:;">查看</a><img style="width:20px;heigth:20px" slot="pic" slot-scope="text" :src=text /></a-table>2、⾃定义pagination,注意写成onChange,change不⾏,灰⾊部分请根据⾃⼰实际代码修改。

data () {let self = thisreturn {collapsed: false,data,sels,columns,rowSelection,pagination: {pageNo: 1,pageSize: 20, // 默认每页显⽰数量showSizeChanger: true, // 显⽰可改变每页数量pageSizeOptions: ['10', '20', '50', '100'], // 每页数量选项showTotal: total => `Total ${total} items`, // 显⽰总数onShowSizeChange: (current, pageSize) => this.pageSize = pageSize, // 改变每页数量时更新显⽰onChange:(page,pageSize)=>self.changePage(page,pageSize),//点击页码事件total:0 //总条数}}},3、Ajax读取数据列表时pagination.total赋总条数即可.then((response) => {that.data = response.data.itemsthat.pagination.total=response.data.totalNumconsole.log(response)})4、这样就会⾃动分页了5、读取数据时带上当前页、分页⼤⼩,过滤条件,后端代码可以简单使⽤通⽤分页⽅法返回Json数据即可,searchUser () {let filter= {userName:erName,curPage:this.pagination.pageNo,pageSize:this.pagination.pageSize};console.log(filter)this.getUser(filter)},getUser是Post和读取返回数据的⽅法,不再粘贴6、在SizeChange、Change、搜索按钮事件⾥调⽤searchUser⽅法就可以了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

vue pagination分页参数
摘要:
1.Vue 分页组件概述
2.Vue 分页的参数介绍
3.Vue 分页组件的使用方法
4.Vue 分页组件的自定义选项
5.Vue 分页组件的常见问题及解决方法
正文:
一、Vue 分页组件概述
Vue 分页组件是一个非常实用的数据分页展示组件,它可以将大量数据按照指定的页数进行分页展示,使得用户在浏览数据时能够更加方便、高效。

在Vue 项目中,我们可以使用Vue 分页组件来实现数据的分页展示。

二、Vue 分页的参数介绍
Vue 分页组件提供了丰富的参数配置,以下是一些常用的参数介绍:
1.:total-count:数据总长度,即需要分页的数据总量。

2.:per-page:每页显示的数据长度,可以根据需求进行调整。

3.:current-page:当前页码,默认为1。

4.:page-sizes:每页显示的数据长度选项,可以是一个数组,例如[10, 20, 30, 40]。

5.:page-size:当前每页显示的数据长度,默认值为:totalCount / perPage。

6.:show-prev:是否显示上一页,默认为true。

7.:show-next:是否显示下一页,默认为true。

8.:show-page:是否显示页码,默认为true。

9.:show-total:是否显示总记录数,默认为true。

10.:layout:布局方式,默认为"total, sizes, prev, pager, next, jumper, page".
11.:jumper-align:页码间距方式,默认为"right".
12.:page-align:页码与总记录数对齐方式,默认为"right".
13.:arrow-align:箭头对齐方式,默认为"left".
三、Vue 分页组件的使用方法
在Vue 项目中,我们可以按照以下步骤使用Vue 分页组件:
1.引入Vue 分页组件:`import Pagination from "vue-pagination"`。

2.注册分页组件:`ponent("pagination", Pagination)`。

3.在Vue 模板中使用分页组件:`<pagination :total-
count="totalCount" :per-page="perPage" :current-page="currentPage" @change="onPageChange"></pagination>`。

4.在Vue 实例中定义相关数据和方法:`data() { return { totalCount: 100, perPage: 10, currentPage: 1 }`, methods: { onPageChange(page) { this.currentPage = page } }」。

四、Vue 分页组件的自定义选项
Vue 分页组件提供了丰富的自定义选项,我们可以根据需求进行相关配置,例如:
```html
<pagination
:total-count="100"
:per-page="10"
:current-page="1"
@change="onPageChange"
:page-sizes="[10, 20, 30, 40]"
:page-size="20"
:show-prev="false"
:show-next="false"
:show-page="false"
:show-total="false"
layout="total, sizes, prev, pager, next, jumper, page"
jumper-align="right"
page-align="right"
arrow-align="left"
class="my-pagination"
></pagination>
```
五、Vue 分页组件的常见问题及解决方法
1.问题:分页组件无法正常工作。

解决方法:请检查是否正确引入分页组件,并确保在Vue 实例中定义了相关数据和方法。

2.问题:分页组件样式与页面不匹配。

解决方法:可以尝试为分页组件添加自定义样式,以适应页面的设计风格。

3.问题:分页组件的参数无法正常传递。

相关文档
最新文档