您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax |

vue实现分页功能

51自学网 2022-05-02 21:33:04
  javascript

本文实例为大家分享了vue实现分页功能的具体代码,供大家参考,具体内容如下

  • 使用组件分页
  • 自己写分页

一、组件分页

<el-pagination     layout="prev, pager, next"     @current-change="changePageNum"     :current-page="pageNum"     :page-size="pageSize"     :total="total"></el-pagination>
data(){return{   tableData: [],        total: 0,//总数        pageNum: 1,//当前页        pageSize: 15,//每页显示数量}}  mounted: function () {      this.query();//加载页面时,获取数据    },    methods:{       //切换页码        changePageNum: function (val) {        this.pageNum = val;        this.query();      },      //通过接口,获取数据    query: function () {        var data = {          name: this.name || '',          fleetId: this.FleetId,          pageNum: this.pageNum,//当前页          pageSize: this.pageSize//查询个数        };        RoleManage.getRole(data)        .then(res => {          var data = res;          if (res.success) {            this.tableData = data.obj.list;            this.total = data.obj.total;            this.name ='';          } else {            this.$message('查询失败');          }        }).catch(err => {          // 异常情况          console.log(err);        });      },         }

组件分页效果

二、自己构建分页

有些时候需要根据需求自己写分页

1、分页样式

2、上下切页

//调度-系统通讯录分页        dispatchCourentPage: 1,        //调度-系统通讯录当前选中标签标记        dispatchCourentIndex: 1,        //调度-系统通讯录更多标记项:组id        dispatchMorecommandGroupId: '',        dispatchTotlePage: 0,//上页 handleLastPage() {        if (this.dispatchCourentPage === 1) return;        this.dispatchCourentPage -= 1;        let index = this.dispatchCourentIndex;        if (this.dispatchMorecommandGroupId != '') {          this.queryBookMoreBygroupId(this.dispatchMorecommandGroupId);        } else {          this.queryBookmember(index);        }      },//下页 handleNextPage() {   if (this.dispatchCourentPage === this.dispatchTotlePage) return;   this.dispatchCourentPage += 1;   let index = this.dispatchCourentIndex;   if (this.dispatchMorecommandGroupId != '') {     this.queryBookMoreBygroupId(this.dispatchMorecommandGroupId);   } else {     this.queryBookmember(index);   } }

三、使用监听属性控制分页显示 

computed: {      limitData() {        let data = [...this.table1Datas];        return data;      },            // 因为要动态计算总页数,所以还需要一个计算属性来返回最终给 Table 的 data      dataWithPage() {        const data = this.limitData;        const start = this.current * this.size - this.size;        const end = start + this.size;        return [...data].slice(start, end);      },  }

四、js控制分页,计算总页数

方法1

/**   *根据数据条数与每页多少条数据计算页数    * totalnum 数据条数   * limit 每页多少条  */ pageCount(totalnum, limit) {     return totalnum > 0 ? ((totalnum < limit) ? 1 : ((totalnum % limit)        ? (parseInt(totalnum / limit) + 1)         : (totalnum / limit))) : 0; },

方法2

/**   * 分页的总页数算法   * 总记录数:totalRecord   * 每页最大记录数:maxResult */ function pageCount() {     totalPage = (totalRecord + maxResult -1) / maxResult;}

方法3 推荐

totalPage  = Math.floor((totalRecord  +maxResult -1) /maxResult );

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持wanshiok.com。


使用Element+vue实现开始与结束时间限制
JS中的reduce()方法使用小结
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1