原文链接: vue mint LoadMore 组件使用
地址
http://mint-ui.github.io/docs/#/en2/loadmore
实现在顶部下拉刷新,在底部上拉加载
autofill 属性 是自动加载数据,根据情况可以选择是自己加载还是组件自动加载,会调用的是loadBottom
top-method 是下拉刷新的函数
bottom-method 是上拉加载函数
bottom-all-loaded 表示是否全部加载完毕,由于父组件不应该通过ref来修改子组件的属性值,所以 需要在父组件中定义一个 属性,通过绑定的方式修改子组件属性值,当该值为true,则上拉加载无法使用
注意在函数中改变数据后,还需要告诉组件执行成功了
this.$refs.loadmore.onBottomLoaded();
<template>
<mt-loadmore :autoFill="false"
:top-method="loadTop"
:bottom-method="loadBottom"
:bottom-all-loaded="allLoaded"
ref="loadmore"
>
<review-info class="review-info" v-for="i in reviews" :key="i.id" :review="i"></review-info>
</mt-loadmore>
</template>
<script>
import * as app from '../api/app.api'
import ReviewInfo from '../components/ReviewInfo2'
export default {
name: "scroll-mint",
data() {
return {
allLoaded: false,
reviews: [],
}
},
components: {
ReviewInfo
},
methods: {
async loadTop() {
this.reviews = await app.get_hot_review()
this.$refs.loadmore.onTopLoaded();
},
async loadBottom() {
this.reviews = this.reviews.concat(await app.get_hot_review())
this.$refs.loadmore.onBottomLoaded();
this.allLoaded = true
}
},
async mounted() {
this.reviews = await app.get_hot_review()
}
}
</script>
<style scoped>
.review-info {
margin: 10px 0;
}
</style>