全国咨询热线:18720358503

潍坊小程序制作_vue2.0完成分页组件的实例代码

类别:媒体报道 发布时间:2021-01-11 浏览人次:

vue2.0实现分页组件的实例代码       这篇文章主要介绍了vue2.0实现分页组件的实例代码,需要的朋友可以参考下

最近使用vue2.0重构项目, 需要实现一个分页的表格, 没有找到合适的分页组件, 就自己写了一个, 效果如下:

该项目是使用 vue-cli搭建的, 如果你的项目中没有使用webpack,请根据代码自己调整:

首先新建pagination.vue文件, 所有组件的代码都写在这里, 写这样的组件并没有什么太大的难度, 主要是解决父子组件之间值传递的问题

 template 
 nav 
 li :class="{'disabled': current == 1}" a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="setCurrent(current - 1)" /a /li 
 li :class="{'disabled': current == 1}" a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="setCurrent(1)" 首页 /a /li 
 li v-for="p in grouplist" :class="{'active': current == p.val}" a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" 
 @click="setCurrent(p.val)" {{ p.text }} /a 
 /li 
 li :class="{'disabled': current == page}" a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="setCurrent(page)"  /a /li 
 li :class="{'disabled': current == page}" a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="setCurrent(current + 1)" /a /li 
 /ul 
 /nav 
 /template 
 script type="es6" 
 export default{
 data(){
 return {
 current: this.currentPage
 pro凡科抠图: {
 total: {// 数据总条数
 type: Number,
 default: 0
 display: {// 每页显示条数
 type: Number,
 default: 10
 currentPage: {// 当前页码
 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);
 /script 
 style lang="less" 
 .pagination {
 overflow: hidden;
 display: table;
 margin: 0 auto;
 /*width: 100%;*/
 height: 50px;
 li {
 float: left;
 height: 30px;
 border-radius: 5px;
 margin: 3px;
 color: #666;
 :hover {
 background: #000;
 color: #fff;
 display: block;
 width: 30px;
 height: 30px;
 text-align: center;
 line-height: 30px;
 font-size: 12px;
 border-radius: 5px;
 text-decoration: none
 .active {
 background: #000;
 color: #fff;
 /style 

使用时, 在父组件中引入, 代码如下:

template
  v-pagination :total="total" :current-page='current' @pagechange="pagechange" /v-pagination
/template
script type="es6"
  import pagination from
export default{
  data(){
 return {
  total: 150,  // 记录总条数
  display: 10,  // 每页显示条数
  current: 1,  // 当前的页数
},
 methods: {
  pagechange:function(currentPage){
  console.log(currentPage);
  // ajax请求, 向后台发送 currentPage, 来获取对应的数据
  }
  },
components: {
  'v-pagination': pagination,
  }
}
/script

至此, 一个基于 vue2.0 的分页组件就完成了


推荐阅读

潍坊小程序制作_vue2.0完成分页组件的实例代码

vue2.0完成分页查询部件的案例编码 本文关键详细介绍了vue2.0完成分页查询部件的案例编码,必须的朋友能够参照下近期应用vue2.0重新构建新项目, 必须完成一个分页查询的报表, 沒有...

2021-01-11
小程序制作平台-一个网站的标题应该怎么设置呢

创造我国企业网站建设优良知名品牌仅有顾客的令人满意,才有大家的发展趋势!!在线客服热线电话: 营销推广热线电话: 大家新建设网站的情况下,必须设置网站的题目,重要词和叙...

2021-01-11
怎样寻找一家比较适合的网站建设公司呢?

一个公司有木有自身的网站,关联到的不但仅是好几百到几万元的建网站花费,只是关联到公司的发展前途和发展趋势难题,非常对中小型公司来讲也是那样。许多中小型公司的老总,...

2021-01-11
如何做小程序直播_js中变量的接连赋值(实例说明

js中自变量的持续取值(案例解读) 文章投稿:jingxian 下边网编就为大伙儿产生一篇js中自变量的持续取值(案例解读)。网编感觉挺好的,如今就共享给大伙儿,也给大伙儿做下参照。...

2021-01-11
深圳电子商务网站建设

B2C电子器件商务接待网站建设是公司拓展市场销售方式的关键方位之一,而B2C电子器件商务接待买东西网站是搭建在互联网营销推广基本以上的,因为其更加深入入的运用互连互联网去...

2021-01-11
怎么做网站啊

您的部位: > 新闻报道新闻资讯 > 网站制作 > 如何建立网站啊一、明确网站主题风格网站主题风格便是你创建的网站所需包括的关键內容,一个网站务必要有一个确立的主题风格。非常...

2021-01-11
X

400-8700-61718720358503
企业邮箱2639601583@qq.com
官方微信