vue-element实现前端分页及注意事项

注意事项:分页table并不是本来就绑定的,需要对数据进行处理

element的分页组件和表格组件并不是绑定的,所以如果前端分页的话,分页组件只能控制点击时显示哪部分数据,因此table也只能绑定显示的数据而不是所有数据.

实现:

html:

 <el-table
            :header-cell-style="{background:'#DFECF0',color:'#000'}"
            :cell-style="cellStyle"
            size="small"
            :data="dataShow"
            style="width: 100%">
            <!--若干el-table-column...-->
            <!--注意绑定的是dataShow就可以了-->
</el-table>


<el-pagination
            :page-size="pageSize"
            @current-change="handleCurrentChange"
            :current-page.sync="currentPage"
            layout="prev, pager, next"
            :total="totalAPI">
        </el-pagination>

js:

export default{
data(){
return{
 // 分页数据
      totalPageData: [],
      pageSize: 5,
      pageNum: 1,
      currentPage: 1,
      totalAPI: 1,
	  tableData: [],
      dataShow: [],}
}
method:{
 handleCurrentChange(currentPage) {
      this.currentPage = currentPage;
      this.dataShow = this.totalPageData[currentPage - 1]
      // console.log(this.currentPage)  //点击第几页
    },
 calcPageData() {
      if (this.tableData.length > 1) {
        this.pageNum = Math.ceil(this.totalAPI / this.pageSize) || 1
      }
      for (let i = 0; i < this.pageNum; i++) {
        this.totalPageData[i] = this.tableData.slice(this.pageSize * i, this.pageSize * (i + 1))

      }
      this.dataShow = this.totalPageData[this.currentPage - 1]
    },
  getAPITokenList() {
      this.tableData.length = 0
      let _this = this
      http.get('/proxyName',
          _this.GLOBAL.User + '/token_list/',
          {},
          {"Authorization": "Bearer " + sessionStorage.getItem('tk')})
          .then(res => {
            if (res.code === 200) {
              let length = res.data.length
              _this.totalAPI = length
              for (let i = 0; i < length; i++) {
                var Data = {}
                Data.tokenID = res.data[i].token_id
                Data.tokenLabel = res.data[i].label
                Data.date = res.data[i].create_time
                Data.overTime = res.data[i].overtime
                Data.whiteList = (res.data[i].ip_white).toString()
                _this.tableData.push(Data)
              }
              this.calcPageData()
            } else {
              this.$message({
                type: 'error',
                message: _this.$t('customerCenter.fail_get_tokenList')
              });
            }
            console.log(res)

          })
    },}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue-element-admin(简称VEA)是一款基于Vue.js的开源后台管理系统框架,而其分页功能是依托于element-ui组件库的el-pagination实现的。下面我来分享一下VEA分页实现方式。 VEA的分页实现主要借助了el-pagination组件,包含以下几个重要属性: ①current-page:当前页码,可通过v-model与数据绑定; ②page-size:每页数据量,默认为10; ③total:总数据量; ④layout:页面上的分页样式,它的属性可以设置为‘total, sizes, prev, pager, next, jumper’,其中total表示当前所在页数和总页数, sizes可以设置每页显示数据的数量, pager是分页按钮, next和prev是上一页和下一页, jumper是跳转到指定页的输入框,用于快速跳转到指定页码。 其中,current-page和page-size是我们需要在代码中动态设置的,而total是从我们的数据源获取的。而我们Vue组件中,一般把total和当前分页数据存储在data中,通过异步请求数据获取分页数据,再通过“setCurrentPage”方法将分页数据赋值给el-pagination,使获得数据的组件进行刷新。 具体操作步骤如下: 1.在Vue组件中的data中定义分页相关属性current-page、page-size和total; 2.通过异步请求获取到分页数据; 3.当数据返回时,将得到的数据赋值给定义好的分页相关属性; 4.使用“setCurrentPage”方法将分页数据赋值给el-pagination,使其刷新。 总体来说,VEA的分页实现方式可以说是比较简单的,只需要使用el-pagination组件和数据绑定的方式即可。在我们的Vue项目中,可以根据需要来灵活的使用VEA分页功能,以实现更加出色的后台管理应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值