vue+Element-ui實現分頁效果

  • 2019 年 10 月 6 日
  • 筆記

當我們向後台請求大量數據的時候,並要在頁面展示出來,請求的數據可能上百條數據或者更多的時候,並不想在一個頁面展示,這就需要使用分頁功能來去完成了。

1.本次所使用的是vue2.0+element-ui實現一個分頁功能,element-ui這個組件特別豐富,分頁中給我提供了一個Pagination 分頁,使用Pagination 快速完成分頁功能

最終效果展示

<div class="deit">      <div class="crumbs">        <el-breadcrumb separator="/">              <el-breadcrumb-item><i class="el-icon-date"></i> 數據管理</el-breadcrumb-item>              <el-breadcrumb-item>用戶列表</el-breadcrumb-item>          </el-breadcrumb>          <div class="cantainer">                      <el-table style="width: 100%;"                      :data="userList.slice((currentPage-1)*pagesize,currentPage*pagesize)"  //對數據請求的處理,最為重要的一句話                      >                          <el-table-column type="index" width="50">                          </el-table-column>                          <el-table-column label="日期" prop="date" width="180">                          </el-table-column>                          <el-table-column label="用戶姓名" prop="name" width="180">                          </el-table-column>                          <el-table-column label="郵箱" prop="email" width="180">                          </el-table-column>                          <el-table-column label="地址" prop="address" width="200">                          </el-table-column>                      </el-table>                          <el-pagination                              @size-change="handleSizeChange"                              @current-change="handleCurrentChange"                              :current-page="currentPage"                              :page-sizes="[5, 10, 20, 40]" //這是下拉框可以選擇的,每選擇一行,要展示多少內容                              :page-size="pagesize"         //顯示當前行的條數                              layout="total, sizes, prev, pager, next, jumper"                              :total="userList.length">    //這是顯示總共有多少數據,                      </el-pagination>          </div>      </div>    </div>

需要data定義一些,userList定義一個空數組,請求的數據都是存放這裡面

data () {        return {                  currentPage:1, //初始頁                  pagesize:10,    //    每頁的數據                  userList: []        }    },    

對一些數據,方法處理,數據的來源是自己通過json-server搭建的本地數據,通過vue-resource請求數據,

created() {          this.handleUserList()      },      methods: {          // 初始頁currentPage、初始每頁數據數pagesize和數據data          handleSizeChange: function (size) {                  this.pagesize = size;                  console.log(this.pagesize)  //每頁下拉顯示數據          },          handleCurrentChange: function(currentPage){                  this.currentPage = currentPage;                  console.log(this.currentPage)  //點擊第幾頁          },          handleUserList() {              this.$http.get('http://localhost:3000/userList').then(res => {  //這是從本地請求的數據介面,                  this.userList = res.body              })          }      }

以上都是分頁所需的功能,也是自己在自己寫案例中所遇到的,並總結下方便查看,喜歡的可以關注一下

可以關注一下https://github.com/MrZHLF/vue-admin-system,這個案例還在完善當中,功能還在增加