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

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

 更新時間:2019年12月14日 15:46:36   作者:小城聽風雨  
這篇文章主要為大家詳細介紹了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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue-router 起步步驟詳解

    vue-router 起步步驟詳解

    這篇文章主要介紹了vue-router 起步步驟詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 基于ElementUI中Table嵌套實現(xiàn)多選的示例代碼

    基于ElementUI中Table嵌套實現(xiàn)多選的示例代碼

    這篇文章主要介紹了基于ElementUI中Table嵌套實現(xiàn)多選的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Vue中使用ElementUI使用第三方圖標庫iconfont的示例

    Vue中使用ElementUI使用第三方圖標庫iconfont的示例

    這篇文章主要介紹了Vue中使用ElementUI使用第三方圖標庫iconfont的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • vue項目中實現(xiàn)緩存的最佳方案詳解

    vue項目中實現(xiàn)緩存的最佳方案詳解

    這篇文章主要給大家介紹了關(guān)于vue項目中實現(xiàn)緩存的最佳方案,文中通過示例代碼介紹的非常詳細,對大家學習或者使用vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • VUE2.0+Element-UI+Echarts封裝的組件實例

    VUE2.0+Element-UI+Echarts封裝的組件實例

    下面小編就為大家分享一篇VUE2.0+Element-UI+Echarts封裝的組件實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 頁面tooltip組件限制工具函數(shù)使用示例詳解

    頁面tooltip組件限制工具函數(shù)使用示例詳解

    這篇文章主要為大家介紹了頁面tooltip組件的限制工具函數(shù)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • vue.js數(shù)據(jù)加載完成前顯示原代碼{{代碼}}問題及解決

    vue.js數(shù)據(jù)加載完成前顯示原代碼{{代碼}}問題及解決

    這篇文章主要介紹了vue.js數(shù)據(jù)加載完成前顯示原代碼{{代碼}}問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 詳解vue引入子組件方法

    詳解vue引入子組件方法

    在本文中小編給大家分享的是關(guān)于vue引入子組件方法和先關(guān)注意點,有需要的朋友們可以學習下。
    2019-02-02
  • vue-axios使用詳解

    vue-axios使用詳解

    本篇文章主要介紹了vue-axios使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • vue 自定義組件的寫法與用法詳解

    vue 自定義組件的寫法與用法詳解

    這篇文章主要介紹了vue 自定義組件的寫法與用法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2020-03-03

最新評論