vue中的自定義分頁插件組件的示例

介紹一下,已經有很多的vue分頁的組件了,大家都是大同小易,那么我就結合自身的使用,寫出了一片文章

成都創新互聯專業為企業提供聶拉木網站建設、聶拉木做網站、聶拉木網站設計、聶拉木網站制作等企業網站建設、網頁設計與制作、聶拉木企業網站模板建站服務,十多年聶拉木做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

vue中的自定義分頁插件組件的示例

vue中的自定義分頁插件組件的示例

首先在新建一個分頁模塊

vue中的自定義分頁插件組件的示例

在模塊中引入相應的代碼,(內有詳細的注釋)

template中

 <div class="page-bar">
 <ul>
  <li class="first">
   <span>共{{dataNum}}條記錄 第 {{cur}} / {{all}} 頁</span>
  </li>
  <li v-if="cur>1">
   <a v-on:click="cur--,pageClick()"><</a>//點擊上一頁
  </li>
  <li v-if="cur==1">
   <a class="banclick"><</a>//點擊第一頁時顯示
  </li>
  <li class="li_a" v-for="index in indexs" v-bind:class="{ 'active': cur == index}">
   <a v-on:click="btnClick(index)">{{ index }}</a>//頁碼
  </li>
  <li v-if="cur!=all">
   <a v-on:click="cur++,pageClick()">></a>//點擊下一頁
  </li>
  <li v-if="cur == all">
   <a class="banclick">></a> //點擊最后一頁時顯示
  </li>
  <li class="last_li">
   <span>共<i>{{all}}</i>頁</span> // 共有多少頁
  </li>
 </ul>
</div>

style中的內容

.page-bar a {
 width: 34px;
 height: 34px;
 border: 1px solid #ddd;
 text-decoration: none;
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%,-50%);
 /*margin-left: -1px;*/
 line-height: 34px;
 color: #333;
 cursor: pointer
}

.page-bar .li_a a:hover {
 background-color: #eee;
 border: 1px solid #40A9FF;
 color: #40A9FF;
}

.page-bar a.banclick {
 cursor: not-allowed;
}

.page-bar .active a {
 color: #fff;
 cursor: default;
 background-color: #1890FF;
 border-color: #1890FF;
}

.page-bar i {
 font-style: normal;
 color: #d44950;
 margin: 0px 4px;
 font-size: 14px;
}

script

export default {
 //顯示的聲明組件
 name: "paging",
 //從父級組件中傳值過來的,你可以自己設置名字,但是需要跟父級傳入的名字一致!
 props : ["dataAll","dataCur","datanum","dataDatanum"],
 

 data() {
  return {
   all: this.dataAll, //總頁數
   cur: this.dataCur ,//當前頁碼
   num: this.datanum , //一頁顯示的數量 奇數
   dataNum: this.dataDatanum,//數據的數量
   
  }

 },
 watch: {
  cur: function(oldValue, newValue) {
  //父組件通過change方法來接受當前的頁碼
   this.$emit('change', oldValue)
   //這里是直接點擊執行函數
  }
 },
 methods: {
  btnClick: function(data) { //頁碼點擊事件
   if(data != this.cur) {
    this.cur = data
   }
  },
  pageClick: function() {
   console.log('現在在' + this.cur + '頁');
   //父組件通過change方法來接受當前的頁碼
    //這里是點擊下一頁執行函數
   this.$emit('change', this.cur)
  }
 },

 computed: {
  indexs: function() {
   var left = 1;
   var right = this.all;
   var ar = [];
   if(this.all >= this.num ) {
    if(this.cur > 3 && this.cur < this.all - 2) {
     left = this.cur - (this.num-1)/2
     right = this.cur + (this.num-1)/2
    } else {
     if(this.cur <= 3) {
      left = 1
      right = this.num
     } else {
      right = this.all
      left = this.all - (this.num - 1);
     }
    }
   }
   while(left <= right) {
    ar.push(left)
    left++
   }
   return ar
  }

 }

}

父級的組件內容

<template>
//這是我自己設置的,可以根據情況不用設置不同的樣式
  <div class="page">
  //這里時通過props傳值到子級,并有一個回調change的函數,來獲取自己傳值到父級的值
  <paging :dataAll="all" :dataCur="cur" :datanum="num" :dataDatanum="dataNum" @change="pageChange"></paging>
 </div>
</template>
<style scoped>
 .page {
 width: 100%;
 min-width: 1068px;
 height: 36px;
 margin: 40px auto;
 }
</style>
<script>
import Paging from './paging'
export default {
 name: "homepage",
 components: {
  Paging
 },
 data() {
  return {
   all: 40, //總頁數
   cur: 1, //當前頁碼
   num: 7, //一頁顯示的數量 必須是奇數
   dataNum: 400, //數據的數量
  }
 },
 methods: {
  //子級傳值到父級上來的動態拿去
  pageChange: function(page) {
   this.cur = page
  }
 }
}
</script>

最后重新保存,重新運行

 npm run dev 

vue中的自定義分頁插件組件的示例

注意

可以根據自己喜好來自己動手做一個分頁,我在其它人的基礎之上添加了頁碼以及當前頁面數,也可以添加跳轉的頁數(暫時沒有做),也可以更改css樣式來改變!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。

文章名稱:vue中的自定義分頁插件組件的示例
本文來源:http://m.kartarina.com/article26/igcdjg.html

成都網站建設公司_創新互聯,為您提供品牌網站設計網頁設計公司虛擬主機小程序開發外貿建站電子商務

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作
主站蜘蛛池模板: 精品亚洲成A人无码成A在线观看| 无码日韩人妻av一区免费| 国产成人无码A区在线观看导航| 99无码精品二区在线视频| 久久久久精品国产亚洲AV无码| 亚洲av无码成人精品区一本二本| 免费人妻无码不卡中文字幕18禁| 亚洲av无码成人黄网站在线观看| 国产成人无码A区精油按摩| 午夜不卡无码中文字幕影院| 亚洲无码视频在线| 午夜寂寞视频无码专区| 777爽死你无码免费看一二区| 亚洲Av无码乱码在线播放| 久久无码中文字幕东京热| 国产午夜精品无码| 久久无码精品一区二区三区| 午夜福利无码一区二区| 99久久人妻无码精品系列蜜桃| 国内精品人妻无码久久久影院| 国产av无码专区亚洲av毛片搜| 97碰碰碰人妻视频无码| 97久久精品亚洲中文字幕无码| 国产AV无码专区亚洲AVJULIA| 中文无码日韩欧免费视频| 精品人妻无码专区在中文字幕| 亚洲精品无码专区在线| 久久精品国产亚洲AV无码麻豆| 亚洲Av综合色区无码专区桃色| 最新国产精品无码| 亚洲中文字幕无码久久精品1| 少妇无码AV无码一区| 成人午夜亚洲精品无码网站| 中文字幕无码精品三级在线电影| 中文字幕无码av激情不卡久久 | 国产精品无码专区在线观看| 国产精品无码2021在线观看| 国产成人无码精品一区不卡| 午夜无码一区二区三区在线观看| 无码专区国产精品视频| 久久久久成人精品无码|