java分页模块复用性高,分页组件要怎么实现怎么复用?给提供个思路吧?

25f806661a6b779fa7d9c2b28ae86d4c.png

aluckdog

并不建议把请求封装在分页组件里面,各大主流UI框架都有现成的分页组件了,向后端请求无非就是用到分页组件的当前请求页current-page及每页请求条目个数 page-size ,页面监听到组件这2个属性变更就重新提交请求,逻辑很清晰。你要是把请求封装在分页组件里面,要把请求方法当参数传进去吧,组件还得能接受请求额外参数吧,要提供手动请求接口吧,请求回调后又要从分页组件里面拿回调吧?这个可以实现,但总感觉逻辑不对以element-ui为例 截取一段我的实现方法

    @current-change="tablePageChange"

    :current-page="table.page"

    :page-sizes="table.pageSizes"

    :page-size="table.pageSize"

    :total="table.total"

    layout="total, sizes, prev, pager, next, jumper">

data() {  return {    search:{                                //检索关联

      status: 'ALL',      create_time: [start, end],      seller_flag: -1,      buyer_remark: 0,      seller_remark: 0,      address_code: '',      keyword_trade: '',      keyword_sku: '',      keyword_address: ''

    },    table: {      pageSize: 20,                         //默认每页数据量

      pageSizes: [20, 30, 50, 100],         //可选的分页数据量

      page: 1,                              //当前页码

      total: 0,                             //分页总数据量 后端提供

      sort: {},                             //排序数据

    },

  }

},methods: {

  tableSizeChange(size) {    this.table.pageSize = size;    this.onSearchSubmit()

  },

  tablePageChange(page) {    this.table.page = page;    this.onSearchSubmit()

  },

  onSearchSubmit() {    this.loading = true;    this.$store.dispatch('tradeSearch', {

      ...this.search,

      page: this.table.page,

      page_size: this.table.pageSize,

      callback: res => {        this.loading = false;        if (!res.code) {          if (res.data.page === 1) {             this.table.total = res.data.total

          }          this.list = res.data.list.map(({id}) => id);

        } else {          this.list = [];

        }

      }

    });

  },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
动态实现分页,可复用,类分页,ssh package com.djh.action.web; import java.io.Serializable; import java.util.List; public class PageBean<DUser> implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private List<DUser> list;//要返回的页面记录列表 private int allRow;//总记录数 private int totalPage;//总页数 private int currentPage;//当前页 private int pageSize;//每页显示的条数 public List<DUser> getList() { return list; } public void setList(List<DUser> list) { this.list = list; } public int getAllRow() { return allRow; } public void setAllRow(int allRow) { this.allRow = allRow; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public static long getSerialversionuid() { return serialVersionUID; } /* * 计算总页数,静态方法,供外部直接通过类名调用 */ public static int countTotalPage(final int pageSize, final int allRow){ int totalPage = allRow%pageSize == 0? allRow/pageSize:allRow/pageSize + 1; return totalPage; } /* * 计算当前页开始记录 */ public static int countOffset(final int pageSize, final int currentPage){ int offset = pageSize*(currentPage - 1); return offset; } /* * 计算当前页,默认为第一页 */ public static int countCurrentPage(int page){ final int curPage = (page==0 ? 1:page); return curPage; } @SuppressWarnings("unused") private boolean isFirstPage;//是否为第一页 @SuppressWarnings("unused") private boolean isLastPage;//是否为最后一页 @SuppressWarnings("unused") private boolean hasPreviousPage;//是否有前一页 @SuppressWarnings("unused") private boolean hasNextPage;//是否有下一页 public void init(){ this.isFirstPage = isFirstPage(); this.isLastPage = isLastPage(); this.hasPreviousPage = isHasPreviousPage(); this.hasNextPage = isHasNextPage(); } public boolean isFirstPage(){ return currentPage == 1; } public boolean isLastPage(){ return currentPage == totalPage; } public boolean isHasPreviousPage() { return currentPage != 1; } public boolean isHasNextPage() { return currentPage != totalPage; } }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值