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

Vue+ElementUI table實現(xiàn)表格分頁

 更新時間:2019年12月14日 15:46:36   作者:小城聽風(fēng)雨  
這篇文章主要為大家詳細介紹了Vue+ElementUI table實現(xiàn)表格分頁,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Vue+ElementUI table表格分頁,供大家參考,具體內(nèi)容如下

分頁的兩種方式。前端分頁,后端分頁。兩種方式各有個的優(yōu)缺點吧。

前端分頁:后臺只需將數(shù)據(jù)返回,不需要做過多處理,前端一次請求拿到所有數(shù)據(jù)后做分頁處理。但數(shù)據(jù)量不能太大,因為前端是先一次性加載所有數(shù)據(jù),然后在做分頁處理。在數(shù)據(jù)量多的情況下,加載相對應(yīng)的會變慢。所有在前端做分頁時要先考慮一下后期的數(shù)據(jù)量。

后端分頁:因為是后端分頁,前端在每點擊一次分頁時,便向后臺請求一次數(shù)據(jù)。其實就是避免前端一次性從數(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 弄'
     }],
     // 默認顯示第一條
     currentPage:1
    }
   },
   methods: {
     handleSizeChange(val) {
      console.log(`每頁 ${val} 條`);
     },
     handleCurrentChange(val) {
      console.log(`當前頁: ${val}`);
     }
    },
  }
</script>

二、前端分頁(在一的基礎(chǔ)上添加分頁功能)

<template>
 <div class="app">  
   <!-- 將獲取到的數(shù)據(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:[],
      // 默認顯示第幾頁
      currentPage:1,
      // 總條數(shù),根據(jù)接口獲取數(shù)據(jù)長度(注意:這里不能為空)
      totalCount:1,
      // 個數(shù)選擇器(可修改)
      pageSizes:[1,2,3,4],
      // 默認每頁顯示的條數(shù)(可修改)
      PageSize:1,
    }
  },
 methods:{
    getData(){
       // 這里使用axios,使用時請?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ù)時,要將頁碼顯示到第一頁
      this.currentPage=1
    },
     // 顯示第幾頁
    handleCurrentChange(val) {
      // 改變默認的頁數(shù)
      this.currentPage=val
    },
  },
  created:function(){
     this.getData() 
  }
}
</script>

三、后端分頁(在一的基礎(chǔ)上添加分頁功能)

<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:[],
      // 默認顯示第幾頁
      currentPage:1,
      // 總條數(shù),根據(jù)接口獲取數(shù)據(jù)長度(注意:這里不能為空)
      totalCount:1,
      // 個數(shù)選擇器(可修改)
      pageSizes:[1,2,3,4],
      // 默認每頁顯示的條數(shù)(可修改)
      PageSize:1,
    }
  },
 methods:{
     // 將頁碼,及每頁顯示的條數(shù)以參數(shù)傳遞提交給后臺
    getData(n1,n2){
       // 這里使用axios,使用時請?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
      // 點擊每頁顯示的條數(shù)時,顯示第一頁
      this.getData(val,1)
      // 注意:在改變每頁顯示的條數(shù)時,要將頁碼顯示到第一頁
      this.currentPage=1 
    },
     // 顯示第幾頁
    handleCurrentChange(val) {
      // 改變默認的頁數(shù)
      this.currentPage=val
      // 切換頁碼時,要獲取每頁顯示的條數(shù)
      this.getData(this.PageSize,(val)*(this.pageSize))
    },
  },
  created:function(){
     this.getData(this.PageSize,this.currentPage) 
  }
 }
</script>

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

相關(guān)文章

  • vue播放flv、m3u8視頻流(監(jiān)控)的方法實例

    vue播放flv、m3u8視頻流(監(jiān)控)的方法實例

    隨著前端大屏頁面的逐漸壯大,客戶的...其中實時播放監(jiān)控的需求逐步增加,視頻流格式也是有很多種,用到最多的.flv、.m3u8,下面這篇文章主要給大家介紹了關(guān)于vue播放flv、m3u8視頻流(監(jiān)控)的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • vue-cli5.0?webpack?采用?copy-webpack-plugin?打包復(fù)制文件的方法

    vue-cli5.0?webpack?采用?copy-webpack-plugin?打包復(fù)制文件的方法

    今天就好好說說vue-cli5.0種使用copy-webpack-plugin插件該如何配置的問題。這里我們安裝的 copy-webpack-plugin 的版本是 ^11.0.0,感興趣的朋友一起看看吧
    2022-06-06
  • vue腳手架vue-cli的卸載與安裝方式

    vue腳手架vue-cli的卸載與安裝方式

    pm是nodejs的包管理和分發(fā)工具,它可以讓javascript開發(fā)者能夠更加輕松的共享代碼和共用代碼片段,下面這篇文章主要給大家介紹了關(guān)于vue腳手架vue-cli卸載與安裝的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • element el-tooltip動態(tài)顯示隱藏(有省略號顯示,沒有省略號不顯示)

    element el-tooltip動態(tài)顯示隱藏(有省略號顯示,沒有省略號不顯示)

    本文主要介紹了element el-tooltip動態(tài)顯示隱藏,主要實現(xiàn)有省略號顯示,沒有省略號不顯示,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • VUE+ElementUI下載文件的幾種方式(小結(jié))

    VUE+ElementUI下載文件的幾種方式(小結(jié))

    本文主要介紹了VUE+ElementUI下載文件的幾種方式(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Vue二次封裝el-select實現(xiàn)下拉滾動加載效果(el-select無限滾動)

    Vue二次封裝el-select實現(xiàn)下拉滾動加載效果(el-select無限滾動)

    el-select默認是不支持虛擬滾動的,需要使用第三方插件來實現(xiàn)虛擬滾動功能,下面這篇文章主要給大家介紹了關(guān)于Vue二次封裝el-select實現(xiàn)下拉滾動加載效果的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • vue3中的useAttrs和props的區(qū)別解析

    vue3中的useAttrs和props的區(qū)別解析

    在vue3中,?提供了一個?useAttrs?的方法它接收到的參數(shù)一?prop中可以接收到的數(shù)據(jù)是基本一樣的如果我們想自已寫一個組件,?把?elementPlus?中的期中一個組件封裝一下,這篇文章主要介紹了vue3中的useAttrs和props的區(qū)別,需要的朋友可以參考下
    2023-09-09
  • Vue中引入樣式文件的方法

    Vue中引入樣式文件的方法

    這篇文章主要介紹了Vue中引入樣式文件的方法,需要的朋友可以參考下
    2017-08-08
  • 關(guān)于vue2響應(yīng)式缺陷的問題

    關(guān)于vue2響應(yīng)式缺陷的問題

    這篇文章主要介紹了關(guān)于vue2響應(yīng)式缺陷的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • element-plus中如何實現(xiàn)按需導(dǎo)入與全局導(dǎo)入

    element-plus中如何實現(xiàn)按需導(dǎo)入與全局導(dǎo)入

    本文主要介紹了element-plus中如何實現(xiàn)按需導(dǎo)入與全局導(dǎo)入,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論

隆子县| 柳林县| 田阳县| 县级市| 牙克石市| 靖远县| 紫云| 靖边县| 如东县| 海门市| 綦江县| 陆河县| 会同县| 福州市| 金塔县| 景泰县| 和龙市| 舟曲县| 溆浦县| 名山县| 和林格尔县| 巩义市| 承德县| 焦作市| 乐昌市| 宝坻区| 沂南县| 佛坪县| 天祝| 乐平市| 通州市| 阿拉善左旗| 彩票| 温宿县| 水富县| 永和县| 彰化县| 昭苏县| 嵊州市| 揭阳市| 白银市|