欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

使用vue怎么實現(xiàn)一個分頁組功能-創(chuàng)新互聯(lián)

本篇文章為大家展示了使用vue怎么實現(xiàn)一個分頁組功能,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司主營浦城網站建設的網絡公司,主營網站建設方案,app軟件開發(fā)公司,浦城h5重慶小程序開發(fā)公司搭建,浦城網站營銷推廣歡迎浦城等地區(qū)企業(yè)咨詢

文件的目錄:

使用vue怎么實現(xiàn)一個分頁組功能

我們在 pageComponentsTest.vue 頁面引入了 pageComponent.vue 分頁組件。整體思路是通過 props
來達到組件的靈活通用的效果,整體語法是使用vue的VM語法。

pageComponent.vue實現(xiàn)

首先實現(xiàn)一個分頁,需要知道數(shù)據(jù)總條數(shù),一個頁面顯示的數(shù)據(jù)條數(shù)和當前顯示第幾頁的數(shù)據(jù)。那么我們在 pageComponent.vue 里面的 props 就有了??聪旅娴拇a:

props: {
   // 分頁配置
   pageConfig: {
    type: Object, require: true, default() {
     return {
      pageSize: 10,   //一頁的數(shù)據(jù)條數(shù)
      pageNo: 0,    //當前頁的索引
      total: 0,     //總的數(shù)據(jù)條數(shù)
      pageTotal: 0   //總的頁數(shù)
     }
    }
   }

根據(jù)用戶入參,我們可以使用計算屬性來計算一個總頁數(shù)的變量:

computed: {
   //計算總頁數(shù),如果傳了pageTotal,直接取pageTotal的值,如果傳了total,那么根據(jù)pageSize去計算
   pageTotal(){
    const config = this.pageConfig
    if(config.pageTotal){
     return config.pageTotal
    }else {
     if(config.pageSize && config.total){
      return Math.ceil(config.total/config.pageSize)
     }else {
      return 0
     }
    }
   }
  }

有了總頁數(shù),和當前頁,就需要各種判斷來實現(xiàn)我們的html部分了,這里分4中情況

  1. 總頁數(shù)小于8,只需要直接遍歷到8就行了。

  2. 總頁數(shù)大于8,但當前頁小于4的。

  3. 總頁數(shù)大于8,當前頁靠后的。

  4. 總頁數(shù)大于8,當前頁在中間的。

下面看具體的實現(xiàn):

<!--上一頁-->
   <button @click="prePage" :disabled="currentPage === 1">上一頁</button>
   <!--總頁數(shù)小于8的-->
   <template v-if="pageTotal <= showPageNo">
    <button v-for="i in pageTotal" @click="changeCurrentPage(i)" :class="{active:i === currentPage}" :key="i">{{i}}</button>
   </template>
   <template v-else-if="currentPage < 4">
    <button v-for="i in 6" @click="changeCurrentPage(i)" :class="{active:i === currentPage}" :key="i">{{i}}</button>
    <button :disabled="true">···</button>
    <button>{{pageTotal}}</button>
   </template>
   <template v-else-if="currentPage > pageTotal - 4">
    <button>1</button>
    <button :disabled="true">···</button>
    <button v-for="i in 6" @click="changeCurrentPage(i + (pageTotal - 6))" :class="{active:(i + (pageTotal - 6)) === currentPage}" :key="i">{{i + (pageTotal - 6)}}</button>
   </template>
   <template v-else>
    <button>1</button>
    <button :disabled="true">···</button>
    <button @click="changeCurrentPage(currentPage - 2)">{{currentPage - 2}}</button>
    <button @click="changeCurrentPage(currentPage - 1)">{{currentPage - 1}}</button>
    <button class="active">{{currentPage}}</button>
    <button @click="changeCurrentPage(currentPage + 1)">{{currentPage + 1}}</button>
    <button @click="changeCurrentPage(currentPage + 2)">{{currentPage + 2}}</button>
    <button :disabled="true">···</button>
    <button @click="changeCurrentPage(pageTotal)">{{pageTotal}}</button>
   </template>
   <!--下一頁-->
   <button @click="nextPage" :disabled="currentPage === pageTotal">下一頁</button>

可以看到頁面上需要實現(xiàn)3個方法,分別是上下頁,和點擊頁面的方法。

methods: {
   prePage(){
    this.currentPage -= 1
    this.$emit('changeCurrentPage',this.currentPage)
   },
   nextPage(){
    this.currentPage += 1
    this.$emit('changeCurrentPage',this.currentPage)
   },
   changeCurrentPage(i){
    this.currentPage = i
    this.$emit('changeCurrentPage',this.currentPage)
   }
  }

以上就是 pageComponent.vue 的大致實現(xiàn)了,每次頁面改變,都會觸發(fā)一個 changeCurrentPage 方法的回調,用來通知當前使用組件的頁面當前頁已經改變。

pageComponentsTest.vue的實現(xiàn)

引用頁面就比較簡單了,只要傳入組件需要的對應的參數(shù),就能顯示我們的組件了。 引用部分:

<template>
 <div class="pageComponentsTest">
  <page-component :page-config="pageConfigTotal" @changeCurrentPage="changePage"></page-component>
  <page-component :page-config="pageConfigPageTotal"></page-component>
 </div>
</template>

配合入參部分:

{
  name: "pageComponentsTest",
  data() {
   return {
    pageConfigTotal:{total:21,pageSize:10,pageNo:1},
    pageConfigPageTotal:{total:21,pageSize:10,pageNo:1,pageTotal:50}
   }
  },
  components:{'page-component':pageComponent},
  methods: {
   changePage(page){
    this.pageConfigTotal.pageNo = page
   }
  }
 }

上述內容就是使用vue怎么實現(xiàn)一個分頁組功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網站欄目:使用vue怎么實現(xiàn)一個分頁組功能-創(chuàng)新互聯(lián)
當前地址:http://aaarwkj.com/article20/phhjo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網站建設、網站營銷網頁設計公司、網站設計公司、Google、面包屑導航

廣告

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

網站優(yōu)化排名
神马免费午夜福利剧场| 国产女主播高清在线视频| 老司机精品成人免费视频| 国产麻豆剧传媒国产av| 理论三级麻豆国产在线| 97国产超碰在线观看| 欧美日韩一区精品视频| 人妻中文字幕一区二区三| 蜜臀综合亚洲国产精品| 91亚洲国产成人精品性色| 少妇二区三区精品视频| 四虎精品国产一区二区三区| 国产情侣自拍视频在线观看| 一起草视频在线观看视频| 日本啪啪精品一区二区三区| 日本人妻在线不卡视频| 中文字幕乱码亚洲美女精品| 剧情av一区二区在线| 色噜噜男人的天堂av| 一级亚洲国产日韩欧美| 日韩精品一区二区三区中文| 蜜桃av噜噜一区二区三| 91久久精品国产免费一区| 91久久精品国产一区| 人妻系列日本在线播放| 精品人妻少妇一区二区三| 99精品久久久中文字幕日本| 亚洲一区欧美二区日韩| 欧美亚洲另类不卡在线| 香蕉视频网站欧美一区| 国产精品中文字幕日韩在线| 精品久久一区麻豆香蕉| av毛片在线播放免费| 国产女同av一区二区三区 | 丰满少妇被激烈的插进去| 亚洲男女尻逼片视频网站| 夫妻性生活一级片视频| 亚洲伊人久久一区二区| 91麻豆亚洲国产成人久久精品| 亚洲欧美日韩另类在线视频| 人妻有码av中文字幕久久|