欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue實現(xiàn)web分頁組件詳解

 更新時間:2021年09月26日 11:04:47   作者:毛宇鵬  
這篇文章主要為大家詳細介紹了Vue實現(xiàn)web分頁組件的實現(xiàn)方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Vue實現(xiàn)web分頁組件的具體代碼,供大家參考,具體內(nèi)容如下

效果演示

源代碼

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>測試分頁 - www.maoyupeng.com</title>
 <style type="text/css">
  body{padding:0; margin: 0; broder:none; } #app {width: 500px; height: 200px; margin: 0 auto; text-align: center; background-color: #cccccc; } #mylink {color: #efefef; } .pagination{list-style: none; text-align: center; height: 50px; padding-top: 50px; } .pagination > li {float: left; margin: 0 5px; } [v-cloak] {display: none; } </style>
</head>
<body>
 <div id="app" v-cloak>
  <ul class="pagination">
   <li>
    <a v-if="currentPage == 1" >首頁</a>
    <a v-else href="javascript:;" @click="next(1)">首頁</a>
   </li>
   <li v-if="currentPage<=1"><a>上一頁</a></li>
   <li v-else><a href="javascript:;" @click="next(currentPage-1)">上一頁</a></li>


   <li v-for="item in pagingList">
    <a v-if="currentPage==item.key || sign ==item.key" >{{item.key}}</a>
    <a v-else href="javascript:;" @click="next(item.value)">{{item.key}}</a>
   </li>

   <li v-if="currentPage>=totalPageCount"><a>下一頁</a></li>
   <li v-else><a href="javascript:;" @click="next(currentPage+1)">下一頁</a></li>
   <li>
    <a v-if="totalPageCount == currentPage">尾頁</a>
    <a v-else href="javascript:;" @click="next(totalPageCount)">尾頁</a>
   </li>
  </ul>
  <p>共:{{totalPageCount||0}}頁,當前頁為第{{currentPage||0}}頁&nbsp;&nbsp;&nbsp;設(shè)置總頁數(shù):<input style="width:20px;" v-model="totalPageCount"></p>
  <a  target="_blank" id="mylink">http://www.maoyupeng.com 帶注解版本</a>
 </div>

 <script src="https://unpkg.com/vue/dist/vue.js"></script>
 <script type="text/javascript">
  var app = new Vue({
   el: '#app',
   data: {
   // 省略的符號
   sign:'...',
   // 省略號位置
   signIndex:4,
   // 總頁數(shù)
   totalPageCount: 4,
   // 當前頁
   currentPage:1,
   // 顯示在頁面的數(shù)組列表
   pagingList:[]
   },
   watch: {
   totalPageCount (val) {
    var that = this
    if (!val || val == '') return;
    that.currentPage = 1;
    that.init()
   },
   currentPage (val) {
    var that = this
    that.init()
   }
   },
   methods: {
   // 跳轉(zhuǎn)到某頁碼
   next (num) {
    var that = this
    if (num <= 1) that.currentPage = 1;
    else if (num >= that.totalPageCount) that.currentPage = that.totalPageCount;
    else that.currentPage = num;
   },
   // 初始化數(shù)據(jù)
   fetchData () {
    var that = this

    that.pagingList = [];
    var tmp = null;


    if ((that.totalPageCount) > 6) {
     if (((that.totalPageCount-1) == (that.totalPageCount - that.currentPage)) && (that.totalPageCount - that.currentPage) > 5) {
      for (var i=1;i<7;i++) {
       if (i < that.signIndex) {
        tmp = {key:i, value:i }
       } else if (i== that.signIndex) {
        tmp = {key:that.sign, value:0 }
       } else if (i == (that.signIndex + 1) ) {
        tmp = {key:that.totalPageCount - 1, value:that.totalPageCount - 1 }
       } else {
        tmp = {key:that.totalPageCount, value:that.totalPageCount }
       }
       that.pagingList.push(tmp)
      }
     } else if (((that.totalPageCount - that.currentPage) <= that.signIndex)){
      var starNum = that.totalPageCount - 5;
      for (var i=starNum;i<starNum+6;i++) {
       tmp = {key:i, value:i }
       that.pagingList.push(tmp)
      }
     } else {
      var starNum = that.currentPage - 1;
      for (var i=1;i<7;i++) {
       if (i < that.signIndex) {
        tmp = {key:(starNum - 1) + i, value:(starNum - 1) + i }
       } else if (i== that.signIndex) {
        tmp = {key:that.sign, value:0 }
       } else if (i == (that.signIndex + 1) ) {
        tmp = {key:that.totalPageCount - 1, value:that.totalPageCount - 1 }
       } else {
        tmp = {key:that.totalPageCount, value:that.totalPageCount }
       }
       that.pagingList.push(tmp)
      }
     }
    } else {
     for (var i =0; i <that.totalPageCount; i++) {
      tmp = {key:i+1, value:i+1 }
      that.pagingList.push(tmp)
     }
    }
   },
   init () {
    var that = this

    that.fetchData()
   }
   },
   mounted () {
   var that = this

   that.init()
   }
  }) 
 </script>
</body>
</html>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue彈窗組件的實現(xiàn)示例代碼

    vue彈窗組件的實現(xiàn)示例代碼

    這篇文章主要介紹了vue彈窗組件的實現(xiàn)示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue+Vue Router多級側(cè)導航切換路由(頁面)的實現(xiàn)代碼

    vue+Vue Router多級側(cè)導航切換路由(頁面)的實現(xiàn)代碼

    這篇文章主要介紹了vue+Vue Router多級側(cè)導航切換路由(頁面)的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • vuex刷新頁面丟失登錄token信息的解決方案

    vuex刷新頁面丟失登錄token信息的解決方案

    本文主要介紹了vuex刷新頁面丟失登錄token信息的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Vue3 openlayers加載瓦片地圖并手動標記坐標點功能

    Vue3 openlayers加載瓦片地圖并手動標記坐標點功能

    這篇文章主要介紹了 Vue3 openlayers加載瓦片地圖并手動標記坐標點功能,我們這里用vue/cli創(chuàng)建,我用的node版本是18.12.1,本文結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2024-04-04
  • 淺談Vue3 defineComponent有什么作用

    淺談Vue3 defineComponent有什么作用

    本文主要介紹了Vue3 defineComponent作用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Vue實現(xiàn)搜索 和新聞列表功能簡單范例

    Vue實現(xiàn)搜索 和新聞列表功能簡單范例

    本文通過實例代碼給大家介紹了Vue實現(xiàn)搜索 和新聞列表功能簡單范例,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧
    2018-03-03
  • vue3.0中給自己添加一個vue.config.js配置文件

    vue3.0中給自己添加一個vue.config.js配置文件

    這篇文章主要介紹了vue3.0中給自己添加一個vue.config.js配置文件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue中import與@import的區(qū)別及使用場景說明

    Vue中import與@import的區(qū)別及使用場景說明

    這篇文章主要介紹了Vue中import與@import的區(qū)別及使用場景說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • el-select二次封裝實現(xiàn)可分頁加載數(shù)據(jù)的示例代碼

    el-select二次封裝實現(xiàn)可分頁加載數(shù)據(jù)的示例代碼

    使用el-select時一次性渲染幾百條數(shù)據(jù)時會造成頁面克頓, 可以通過分頁來實現(xiàn),所以本文給大家介紹了el-select二次封裝實現(xiàn)可分頁加載數(shù)據(jù),文中有詳細的代碼講解,具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • 淺談Vue3中watchEffect的具體用法

    淺談Vue3中watchEffect的具體用法

    watchEffect,它立即執(zhí)行傳入的一個函數(shù),同時響應式追蹤其依賴,并在其依賴變更時重新運行該函數(shù),本文主要介紹了Vue3中watchEffect的具體用法,感興趣的可以了解一下
    2022-05-05

最新評論