47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
//封装下拉刷新混入对象
|
|
export default ({ getPageData}) => {
|
|
return {
|
|
data() {
|
|
return {
|
|
mescroll: null, //mescroll实例对象
|
|
};
|
|
},
|
|
//注册滚动到底部的事件,用于上拉加载
|
|
onReachBottom() {
|
|
this.mescroll && this.mescroll.onReachBottom();
|
|
},
|
|
//注册列表滚动事件,用于下拉刷新
|
|
onPageScroll(e) {
|
|
this.mescroll && this.mescroll.onPageScroll(e);
|
|
},
|
|
methods: {
|
|
|
|
// mescroll组件初始化的回调,可获取到mescroll对象
|
|
mescrollInit(mescroll) {
|
|
this.mescroll = mescroll;
|
|
this.mescrollInitByRef(); // 兼容字节跳动小程序
|
|
},
|
|
// 以ref的方式初始化mescroll对象 (兼容字节跳动小程序: http://www.mescroll.com/qa.html?v=20200107#q26)
|
|
mescrollInitByRef() {
|
|
if(!this.mescroll || !this.mescroll.resetUpScroll){
|
|
let mescrollRef = this.$refs.mescrollRef;
|
|
if(mescrollRef) this.mescroll = mescrollRef.mescroll
|
|
}
|
|
},
|
|
|
|
/*下拉刷新的回调, 有三种处理方式: */
|
|
downCallback(mescroll){
|
|
// 第2种: 下拉刷新和上拉加载调同样的接口, 那以上请求可删, 直接用mescroll.resetUpScroll()代替
|
|
mescroll.resetUpScroll(); // 重置列表为第一页 (自动执行 page.num=1, 再触发upCallback方法 )
|
|
},
|
|
/*上拉加载的回调*/
|
|
upCallback(mescroll) {
|
|
getPageData.call(this,mescroll)
|
|
}
|
|
},
|
|
mounted() {
|
|
this.mescrollInitByRef(); // 兼容字节跳动小程序, 避免未设置@init或@init此时未能取到ref的情况
|
|
}
|
|
};
|
|
};
|