Vue无限加载vue-infinite-loading使用详解
如何安装npm install vue-infinite-loading --save导入方式es6模块导入方式import InfiniteLoading from 'vue-infinite-loading';export default {components: {InfiniteLoading},};CommonJS 模块导入方式...
·
如何安装
npm install vue-infinite-loading --save
导入方式
es6模块导入方式
import InfiniteLoading from 'vue-infinite-loading';
export default {
components: {
InfiniteLoading
},
};
CommonJS 模块导入方式
const InfiniteLoading = require('vue-infinite-loading');
export default {
components: {
InfiniteLoading
}
};
其他方式
<script src="vue-infinite-loading.js"></script>
在页面中应用
直接在组件中声明
components:{
InfiniteLoading
}
模板部分
<infinite-loading @infinite="infiniteHandler" :distance="200" ref="infiniteLoading" class="infinite-loading-wrap">
<div v-if="pageNum === 1" slot="spinner"></div>
<div v-else slot="spinner" class="loading-spinner">
<div class="dot"></div><div class="dot"></div><div class="dot">
</div>
</div>
<div slot="no-results" class="empty-font">当前数据为空</div>
<div slot="no-more" class="empty-font">我们是有底线的</div>
</infinite-loading>
js部分
data: function() {
return {
ai: [{
"user": "你好呀!",
"userdate": uill.Format(new Date(), "MM/dd hh:mm")
},
{
"ar": "你好!",
"ardate": uill.Format(new Date(), "MM/dd hh:mm")
}],
pageNum: 0
}
},
methods: {
infiniteHandler($state) {
//console.log(this.url)
console.log(123)
setTimeout(() => {
const temp = [{
"user": "你好呀!",
"userdate": uill.Format(new Date(), "MM/dd hh:mm")
},
{
"ar": "你好!",
"ardate": uill.Format(new Date(), "MM/dd hh:mm")
},
{
"user": "你叫什么名字?",
"userdate": uill.Format(new Date(), "MM/dd hh:mm")
}];
this.ai = this.ai.concat(temp);
console.log(this.ai)
$state.loaded();//一直有数据显示
this.indexone++;
if(this.indexone === 1){
$state.complete();
}
}, 1000);
}
}
注意
如果还是使用
this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded');
this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete');
会出现警告,告诉你已经修改为传参传入$state使用这个方法。
属性
distance:这是滚动的临界值。如果到滚动父元素的底部距离小于这个值,那么infiniteHandler回调函数就会被调用。
<infinite-loading @infinite="infiniteHandler" distance="Number">
</infinite-loading>
spinner:通过这个属性,你可以选择一个你最喜爱旋转器作为加载动画。
spinner="bubbles";
1、bubbles
2、circles
3、default
4、spiral
5、waveDots
<infinite-loading @infinite="infiniteHandler" spinner="String">
</infinite-loading>
direction:如果你设置这个属性为top,那么这个组件将在你滚到顶部的时候,调用infiniteHandler函数。
警告:你必须在数据加载后,手动地将滚动父元素的scrollTop设置为正确的值,否则,该组件会一次又一次调用infiniteHandler函数。
direction="top"
<infinite-loading @infinite="infiniteHandler" direction="String">
</infinite-loading>
当加载到底部后重置需要执行
this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');
更多推荐
已为社区贡献2条内容
所有评论(0)