结合mint-ui移动端下拉加载实践总结

在使用vue做一个h5项目的时候,需要上拉分页加载,所以在实践中总结了一下使用方法:

1.npm i mint-ui -S
2.main.js中引入import 'mint-ui/lib/style.css'
3.以下是代码结构部分:
<template>
  <div class="main-body" :style="{'-webkit-overflow-scrolling': scrollMode}">
    <v-loadmore :bottom-method="loadBottom" :bottom-all-loaded="allLoaded" :auto-fill="false" ref="loadmore">
      <ul class="list">

          <li v-for="(item, index) in proCopyright">
            <div>{{item.FZD_ZPMC}}</div>
          </li>

      </ul>

    </v-loadmore>

  </div>
</template>

<script>
  import {Loadmore} from 'mint-ui';
export default {
    components:{
      'v-loadmore':Loadmore,
    },
  data () {
    return {
      pageNo:1,
      pageSize:50,
      proCopyright:[],
      allLoaded: false, //是否可以上拉属性,false可以上拉,true为禁止上拉,就是不让往上划加载数据了
      scrollMode:"auto", //移动端弹性滚动效果,touch为弹性滚动,auto是非弹性滚动
      totalpage:0,
      loading:false,
      bottomText: '',
    }
  },
  mounted(){
    this.loadPageList();  //初次访问查询列表
  },
  methods:{
    loadBottom:function() {
      // 上拉加载
      this.more();// 上拉触发的分页查询
      this.$refs.loadmore.onBottomLoaded();// 固定方法,查询完要调用一次,用于重新定位
    },
    loadPageList:function (){
      // 查询数据
      this.axios.get('/copyright?key='+ encodeURIComponent('公司名称')+"&mask=001"+"&page="+this.pageNo+"&size="+this.pageSize).then(res =>{
        console.log(res);
        this.proCopyright = res.data.result.PRODUCTCOPYRIGHT;
        this.totalpage = Math.ceil(res.data.result.COUNTOFPRODUCTCOPYRIGHT/this.pageSize);
        if(this.totalpage == 1){
          this.allLoaded = true;
        }
        this.$nextTick(function () {
          // 是否还有下一页,加个方法判断,没有下一页要禁止上拉
          this.scrollMode = "touch";
          this.isHaveMore();
        });
      });
    },
    more:function (){
      // 分页查询
      if(this.totalpage == 1){
        this.pageNo = 1;
        this.allLoaded = true;
      }else{
        this.pageNo = parseInt(this.pageNo) + 1;
        this.allLoaded = false;
      }

      console.log(this.pageNo);
      this.axios.get('/copyright?key='+ encodeURIComponent('公司名称')+"&mask=001"+"&page="+this.pageNo+"&size="+this.pageSize).then(res=>{
        this.proCopyright = this.proCopyright.concat(res.data.result.PRODUCTCOPYRIGHT);
        console.log(this.proCopyright);
        this.isHaveMore();
      });
    },
    isHaveMore:function(){
      // 是否还有下一页,如果没有就禁止上拉刷新
      //this.allLoaded = false; //true是禁止上拉加载
      if(this.pageNo == this.totalpage){
        this.allLoaded = true;
      }
    }
  },
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
    li{
      padding:30px 0;
      background-color: #ccc;
      margin-bottom:20px;
    }
</style>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值