最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • vue 模拟分页

    正文概述 掘金(unicorn_zhou)   2021-07-07   602

    假分页就是前端一次请求,后端一次性查询返回所有页数,之后前端的请求全从之前拿到的里面分批给前端页面。

    小声bb:一般来说,分页效果肯定是后端接口提供,如果后端不愿意提供,那你可以买一杯奶茶请他喝掉然后揍shi祭天了。
    

    当然肯定有特殊情况需要前端自己写分页:比如前端导入excel到表格中,这时候无法请求后端给你带分页的接口,这时候你前端的增删改查全部都要用js模拟出来,然后保存的结果再去请求后端接口保存在数据库。

    下面分享js模拟分页思路:

    那么分页会出现两种情况:

    • 总条数total > 当前页数据条数pageSize => 截取对应条数据给table
    • 总条数total < 当前页数据条数pageSize => 把所有数据都给表格table
    //直接上代码
    <template>
      <div class="orderSaveResult">
              <avue-crud :data="notSaveTable.data" :option="notSaveTable.option" :page.sync="notSaveTable.page"
                         @on-load="notSaveTableOnload"
                         @current-change="notSaveTableCurrentChange"
                         @size-change="notSaveTableSizeChange"
              >
              </avue-crud>
      </div>
    </template>
    
    <script>
    import notSaveTable from './const/notSaveTable'
    
    export default {
      name: "orderSaveResult",
      data() {
        return {
          notSaveTable,
          notSaveTableData: [],
        }
      },
    
      created() {
        if (sessionStorage.getItem('setOrderData')) {
          if (data) {
            this.notSaveTable.data = data.notSaveList
            this.notSaveTable.page.total = data.notSaveList.length
            this.notSaveTableData = data.notSaveList
          }
        }
      },
    
      methods: {
        notSaveTableOnload(page) {
          let val = page
          //表格onLoad函数,页面第一次渲染会传过来page对象,先判断一下如果是对象默认显示第一页,否则就是切换分页传过来的页码值
          if (page.toString() == '[object Object]') {
            val = 1
          }
          this.notSaveTable.data = []
          //分页js
          for (var i = this.notSaveTable.page.pageSize * (val - 1); i < ((this.notSaveTable.page.total > this.notSaveTable.page.pageSize * val) ? (this.notSaveTable.page.pageSize * val) : (this.notSaveTable.page.total)); i++) {
          }
          this.notSaveTable.data = this.notSaveTableData.slice(this.notSaveTable.page.pageSize * (val - 1), i)
        },
        
        notSaveTableCurrentChange(page) {
          console.log(page)
          this.notSaveTable.page.currentPage = page
          this.notSaveTableOnload(this.notSaveTable.page.currentPage)
        },
    
        notSaveTableSizeChange(size) {
          this.notSaveTable.page.currentPage = 1
          this.notSaveTable.page.pageSize = size
          this.notSaveTableOnload(this.notSaveTable.page.currentPage)
        },
      }
    }
    </script>
    
    

    起源地下载网 » vue 模拟分页

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元