vue 使用mint-ui组件的mt-loadmore上拉加载更多

<template>

 <div class="page-loadmore-wrapper" ref="wrapper" :style="{ height: wrapperHeight + 'px' }">

    <mt-loadmore  :bottom-method="loadBottom" :bottom-all-loaded="bottomAllLoaded" ref="loadmore" @bottom-status-change="handleBottomChange" :auto-fill="false">

 <div  v-for="item in topics">
       <h4> {{item.title}}</h4>

 </div>

  </mt-loadmore>
 </div>

</template>

<script>

import Vue from 'vue'

import axios from 'axios'

import qs from 'qs'

import { Loadmore } from 'mint-ui'

Vue.component(Loadmore.name, Loadmore);

export default {
  name: 'app',
  data () {
    return {
      searchKey: {
          page: 1,
          limit: 20,
          tab: 'all',
          mdrender: true
      },
      topics:[],
      bottomAllLoaded:false,
      wrapperHeight: 0
    }
  },
  methods:{
    handleBottomChange(status) {
        this.bottomStatus = status;
      },
    loadBottom() {
        setTimeout(() => {
          this.searchKey.page++;
          this.getTopics();
          this.$refs.loadmore.onBottomLoaded();
        }, 1000);
      },
            getTopics() {
                let params = qs.stringify(this.searchKey);
                console.log("params",params);
                axios.get('https://cnodejs.org/api/v1/topics?' + params).then(response => {
                  console.log(response.data)
                  this.topics = this.topics.concat(response.data.data);
                  if(response.data.data.length<this.searchKey.limit){
                    this.bottomAllLoaded=true;
                  }
                }).catch(error => {
                  console.log(error)
                })
              }
            },
          mounted:function(){
            this.getTopics();    
            this.wrapperHeight = document.documentElement.clientHeight - this.$refs.wrapper.getBoundingClientRect().top;
          },
        }
}

</script>

<style>
.page-loadmore-wrapper {
    overflow: scroll
}

</style>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值