You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.4 KiB
51 lines
1.4 KiB
7 months ago
|
/**
|
||
|
* mescroll-body写在子组件时,需通过mescroll的mixins补充子组件缺少的生命周期:
|
||
|
* 当一个页面只有一个mescroll-body写在子组件时, 则使用mescroll-comp.js (参考 mescroll-comp 案例)
|
||
|
* 当一个页面有多个mescroll-body写在子组件时, 则使用mescroll-more.js (参考 mescroll-more 案例)
|
||
|
*/
|
||
|
const MescrollCompMixin = {
|
||
|
// 因为子组件无onPageScroll和onReachBottom的页面生命周期,需在页面传递进到子组件 (一级)
|
||
|
onPageScroll(e) {
|
||
|
this.handlePageScroll(e)
|
||
|
},
|
||
|
onReachBottom() {
|
||
|
this.handleReachBottom()
|
||
|
},
|
||
|
// 当down的native: true时, 还需传递此方法进到子组件
|
||
|
onPullDownRefresh(){
|
||
|
this.handlePullDownRefresh()
|
||
|
},
|
||
|
// mescroll-body写在子子子...组件的情况 (多级)
|
||
|
data() {
|
||
|
return {
|
||
|
mescroll: {
|
||
|
onPageScroll: e=>{
|
||
|
this.handlePageScroll(e)
|
||
|
},
|
||
|
onReachBottom: ()=>{
|
||
|
this.handleReachBottom()
|
||
|
},
|
||
|
onPullDownRefresh: ()=>{
|
||
|
this.handlePullDownRefresh()
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
methods:{
|
||
|
handlePageScroll(e){
|
||
|
let item = this.$refs["mescrollItem"];
|
||
|
if(item && item.mescroll) item.mescroll.onPageScroll(e);
|
||
|
},
|
||
|
handleReachBottom(){
|
||
|
let item = this.$refs["mescrollItem"];
|
||
|
if(item && item.mescroll) item.mescroll.onReachBottom();
|
||
|
},
|
||
|
handlePullDownRefresh(){
|
||
|
let item = this.$refs["mescrollItem"];
|
||
|
if(item && item.mescroll) item.mescroll.onPullDownRefresh();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default MescrollCompMixin;
|