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

Vue實(shí)現(xiàn)web分頁(yè)組件詳解

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

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

效果演示

源代碼

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>測(cè)試分頁(yè) - 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" >首頁(yè)</a>
    <a v-else href="javascript:;" @click="next(1)">首頁(yè)</a>
   </li>
   <li v-if="currentPage<=1"><a>上一頁(yè)</a></li>
   <li v-else><a href="javascript:;" @click="next(currentPage-1)">上一頁(yè)</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>下一頁(yè)</a></li>
   <li v-else><a href="javascript:;" @click="next(currentPage+1)">下一頁(yè)</a></li>
   <li>
    <a v-if="totalPageCount == currentPage">尾頁(yè)</a>
    <a v-else href="javascript:;" @click="next(totalPageCount)">尾頁(yè)</a>
   </li>
  </ul>
  <p>共:{{totalPageCount||0}}頁(yè),當(dāng)前頁(yè)為第{{currentPage||0}}頁(yè)&nbsp;&nbsp;&nbsp;設(shè)置總頁(yè)數(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: {
   // 省略的符號(hào)
   sign:'...',
   // 省略號(hào)位置
   signIndex:4,
   // 總頁(yè)數(shù)
   totalPageCount: 4,
   // 當(dāng)前頁(yè)
   currentPage:1,
   // 顯示在頁(yè)面的數(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)到某頁(yè)碼
   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>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

    vue+Vue Router多級(jí)側(cè)導(dǎo)航切換路由(頁(yè)面)的實(shí)現(xiàn)代碼

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

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

    本文主要介紹了vuex刷新頁(yè)面丟失登錄token信息的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Vue3 openlayers加載瓦片地圖并手動(dòng)標(biāo)記坐標(biāo)點(diǎn)功能

    Vue3 openlayers加載瓦片地圖并手動(dòng)標(biāo)記坐標(biāo)點(diǎn)功能

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

    淺談Vue3 defineComponent有什么作用

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

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

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

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

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

    Vue中import與@import的區(qū)別及使用場(chǎng)景說(shuō)明

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

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

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

    淺談Vue3中watchEffect的具體用法

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

最新評(píng)論