最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue使用elementUI組件實(shí)現(xiàn)分頁效果

 更新時(shí)間:2023年12月18日 11:35:43   作者:isxxya  
分頁在展示數(shù)據(jù)列表的場景肯定是非常多的,一般的項(xiàng)目開發(fā)中,數(shù)據(jù)量特別大,一般都是后端接口直接處理分頁返回,前端直接調(diào)用即可,本文給大家介紹了vue使用elementUI組件實(shí)現(xiàn)分頁效果,需要的朋友可以參考下

分頁的兩種方式。前端分頁,后端分頁

前端分頁:后臺(tái)只需將數(shù)據(jù)返回,不需要做過多處理,前端一次請(qǐng)求拿到所有數(shù)據(jù)后做分頁處理。但數(shù)據(jù)量不能太大,因?yàn)榍岸耸窍纫淮涡约虞d所有數(shù)據(jù),然后在做分頁處理。在數(shù)據(jù)量多的情況下,加載相對(duì)應(yīng)的會(huì)變慢。所有在前端做分頁時(shí)要先考慮一下后期的數(shù)據(jù)量。

后端分頁:因?yàn)槭呛蠖朔猪?,前端在每點(diǎn)擊一次分頁時(shí),便向后臺(tái)請(qǐng)求一次數(shù)據(jù)。其實(shí)就是避免前端一次性從數(shù)據(jù)庫獲取大量數(shù)據(jù)

一、在elementUI中將表格、分頁引入自己的頁面中

<template>
  <div class="app">
      <el-table :data="tableData" style="width: 100%">
          <el-table-column prop="date" label="日期" width="180"></el-table-column>
          <el-table-column prop="name" label="姓名" width="180"></el-table-column>
          <el-table-column prop="address" label="地址"></el-table-column>
      </el-table>
      <el-pagination
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="currentPage"
        :page-sizes="[100, 200, 300, 400]"
        :page-size="100"
        layout="total, sizes, prev, pager, next, jumper"
        :total="400">
      </el-pagination>
  </div>
  </template>
  <script>
    export default {
      data() {
        return {
          tableData: [{
            date: '2016-05-02',
            name: '王小虎',
            address: '上海市普陀區(qū)金沙江路 1518 弄'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀區(qū)金沙江路 1517 弄'
          }, {
            date: '2016-05-01',
            name: '王小虎',
            address: '上海市普陀區(qū)金沙江路 1519 弄'
          }, {
            date: '2016-05-03',
            name: '王小虎',
            address: '上海市普陀區(qū)金沙江路 1516 弄'
          }],
          // 默認(rèn)顯示第一條
          currentPage:1
        }
      },
      methods: {
          handleSizeChange(val) {
            console.log(`每頁 ${val} 條`);
          },
          handleCurrentChange(val) {
            console.log(`當(dāng)前頁: ${val}`);
          }
       },
    }
  </script>

二、分頁部分

  • 前端分頁
<template>
 <div class="app">    
     <!-- 將獲取到的數(shù)據(jù)進(jìn)行計(jì)算 -->   
     <el-table :data="tableData.slice((currentPage-1)*PageSize,currentPage*PageSize)" style="width: 100%">
         <el-table-column prop="date" label="日期" width="180"></el-table-column>
         <el-table-column prop="name" label="姓名" width="180"></el-table-column>
         <el-table-column prop="address" label="地址"></el-table-column>
     </el-table>
      <div class="tabListPage">
           <el-pagination @size-change="handleSizeChange" 
                          @current-change="handleCurrentChange" 
                          :current-page="currentPage" 
                          :page-sizes="pageSizes" 
                          :page-size="PageSize" layout="total, sizes, prev, pager, next, jumper" 
                          :total="totalCount">
             </el-pagination>
       </div>
</div>
</template>
<script>
export default {
   data(){
       return {
            // 總數(shù)據(jù)
           tableData:[],
           // 默認(rèn)顯示第幾頁
           currentPage:1,
           // 總條數(shù),根據(jù)接口獲取數(shù)據(jù)長度(注意:這里不能為空)
           totalCount:1,
           // 個(gè)數(shù)選擇器(可修改)
           pageSizes:[1,2,3,4],
           // 默認(rèn)每頁顯示的條數(shù)(可修改)
           PageSize:1,
       }
   },
 methods:{
       getData(){
             // 這里使用axios,使用時(shí)請(qǐng)?zhí)崆耙?
             axios.post(url,{
                  orgCode:1
             },{emulateJSON: true},
             {
               headers:{"Content-Type": "application/x-www-form-urlencoded;charset=utf-8",} 
              }
              ).then(reponse=>{
                   console.log(reponse)
                   // 將數(shù)據(jù)賦值給tableData
                   this.tableData=data.data.body
                   // 將數(shù)據(jù)的長度賦值給totalCount
                   this.totalCount=data.data.body.length
              }) 
         },
       // 分頁
        // 每頁顯示的條數(shù)
       handleSizeChange(val) {
           // 改變每頁顯示的條數(shù) 
           this.PageSize=val
           // 注意:在改變每頁顯示的條數(shù)時(shí),要將頁碼顯示到第一頁
           this.currentPage=1
       },
         // 顯示第幾頁
       handleCurrentChange(val) {
           // 改變默認(rèn)的頁數(shù)
           this.currentPage=val
       },
   },
   created:function(){
         this.getData() 
   }
}
</script>
  • 后端分頁
<template>
  <div class="app">  
      <el-table :data="tableData" style="width: 100%">
          <el-table-column prop="date" label="日期" width="180"></el-table-column>
          <el-table-column prop="name" label="姓名" width="180"></el-table-column>
          <el-table-column prop="address" label="地址"></el-table-column>
      </el-table>
       <div class="tabListPage">
            <el-pagination @size-change="handleSizeChange" 
                           @current-change="handleCurrentChange" 
                           :current-page="currentPage" 
                           :page-sizes="pageSizes" 
                           :page-size="PageSize" layout="total, sizes, prev, pager, next, jumper" 
                           :total="totalCount">
              </el-pagination>
        </div>
 </div>
</template>
<script>
export default {
    data(){
        return {
             // 總數(shù)據(jù)
            tableData:[],
            // 默認(rèn)顯示第幾頁
            currentPage:1,
            // 總條數(shù),根據(jù)接口獲取數(shù)據(jù)長度(注意:這里不能為空)
            totalCount:1,
            // 個(gè)數(shù)選擇器(可修改)
            pageSizes:[1,2,3,4],
            // 默認(rèn)每頁顯示的條數(shù)(可修改)
            PageSize:1,
        }
    },
  methods:{
         // 將頁碼,及每頁顯示的條數(shù)以參數(shù)傳遞提交給后臺(tái)
        getData(n1,n2){
              // 這里使用axios,使用時(shí)請(qǐng)?zhí)崆耙?
              axios.post(url,{
                   orgCode:1,
                   // 每頁顯示的條數(shù)
                   PageSize:n1,
                   // 顯示第幾頁
                   currentPage:n2,
              },{emulateJSON: true},
              {
                headers:{"Content-Type": "application/x-www-form-urlencoded;charset=utf-8",} 
               }
               ).then(reponse=>{
                    console.log(reponse)
                    // 將數(shù)據(jù)賦值給tableData
                    this.tableData=data.data.body
                    // 將數(shù)據(jù)的長度賦值給totalCount
                    this.totalCount=data.data.body.length
               }) 
          },
        // 分頁
         // 每頁顯示的條數(shù)
        handleSizeChange(val) {
            // 改變每頁顯示的條數(shù) 
            this.PageSize=val
            // 點(diǎn)擊每頁顯示的條數(shù)時(shí),顯示第一頁
            this.getData(val,1)
            // 注意:在改變每頁顯示的條數(shù)時(shí),要將頁碼顯示到第一頁
            this.currentPage=1  
        },
          // 顯示第幾頁
        handleCurrentChange(val) {
            // 改變默認(rèn)的頁數(shù)
            this.currentPage=val
            // 切換頁碼時(shí),要獲取每頁顯示的條數(shù)
            this.getData(this.PageSize,(val)*(this.pageSize))
        },
    },
    created:function(){
          this.getData(this.PageSize,this.currentPage) 
    }
 }
</script>

到此這篇關(guān)于vue使用elementUI組件實(shí)現(xiàn)分頁效果的文章就介紹到這了,更多相關(guān)vue elementUI分頁內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue之Echarts實(shí)現(xiàn)折線圖全過程

    Vue之Echarts實(shí)現(xiàn)折線圖全過程

    文章主要描述了在Vue項(xiàng)目中安裝并引入echart components插件的具體步驟,并解決了一些常見的錯(cuò)誤,首先,創(chuàng)建了一個(gè)`test.vue`文件,然后引入并配置了ech六 five插件,最后,展示了一個(gè)成功的示意圖,并強(qiáng)調(diào)這是個(gè)人經(jīng)驗(yàn)總結(jié),僅供參考
    2026-04-04
  • Element的el-tree控件后臺(tái)數(shù)據(jù)結(jié)構(gòu)的生成以及方法的抽取

    Element的el-tree控件后臺(tái)數(shù)據(jù)結(jié)構(gòu)的生成以及方法的抽取

    這篇文章主要介紹了Element的el-tree控件后臺(tái)數(shù)據(jù)結(jié)構(gòu)的生成以及方法的抽取,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Vue?事件處理函數(shù)的綁定示例詳解

    Vue?事件處理函數(shù)的綁定示例詳解

    這篇文章主要為大家介紹了Vue?事件處理函數(shù)的綁定示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • element-ui時(shí)間日期選擇器限制選擇范圍的幾種場景

    element-ui時(shí)間日期選擇器限制選擇范圍的幾種場景

    這篇文章主要給大家介紹了關(guān)于element-ui時(shí)間日期選擇器限制選擇范圍的幾種場景,一般在實(shí)際開發(fā)場景中我們需要對(duì)時(shí)間選擇做一些限制,如不能選擇今天之前的時(shí)間、不能選擇今天以后的日期、限制日期不能大于開始日期等等,需要的朋友可以參考下
    2023-08-08
  • vue2+elementUI的el-tree的選中、高亮、定位功能的實(shí)現(xiàn)

    vue2+elementUI的el-tree的選中、高亮、定位功能的實(shí)現(xiàn)

    這篇文章主要介紹了vue2+elementUI的el-tree的選中、高亮、定位功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • 詳解vue axios二次封裝

    詳解vue axios二次封裝

    這篇文章給大家分享了vue axios二次封裝的相關(guān)知識(shí)點(diǎn)等內(nèi)容以及實(shí)例代碼,有興趣的朋友可以參考學(xué)習(xí)下。
    2018-07-07
  • 淺談vuepress 踩坑記

    淺談vuepress 踩坑記

    本篇文章主要介紹了淺談vuepress 踩坑記,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • Nuxt.js實(shí)戰(zhàn)和配置詳解

    Nuxt.js實(shí)戰(zhàn)和配置詳解

    這篇文章主要介紹了Nuxt.js實(shí)戰(zhàn)和配置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue3中reactive變量重新賦值無法響應(yīng)的3種處理方法

    Vue3中reactive變量重新賦值無法響應(yīng)的3種處理方法

    這篇文章主要給大家介紹了關(guān)于Vue3中reactive變量重新賦值無法響應(yīng)的3種處理方法,在Vue3中可以使用reactive函數(shù)將一個(gè)普通對(duì)象轉(zhuǎn)換為響應(yīng)式對(duì)象,需要的朋友可以參考下
    2023-08-08
  • 解決elementui中NavMenu導(dǎo)航菜單高亮問題(解決多種情況)

    解決elementui中NavMenu導(dǎo)航菜單高亮問題(解決多種情況)

    這篇文章主要介紹了解決elementui中NavMenu?導(dǎo)航菜單高亮問題(解決多種情況),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05

最新評(píng)論

兰西县| 新乡县| 且末县| 西峡县| 巴林右旗| 微山县| 定边县| 太和县| 商都县| 离岛区| 隆林| 池州市| 健康| 罗江县| 北海市| 富裕县| 和田市| 晴隆县| 巴彦淖尔市| 茌平县| 都昌县| 清远市| 依安县| 汶川县| 张家川| 九寨沟县| 沁源县| 永兴县| 南和县| 江津市| 金秀| 嘉善县| 潍坊市| 虞城县| 隆安县| 渝北区| 托克逊县| 盐边县| 龙川县| 普洱| 清新县|