/**
 * mescroll-body写在子组件时,需通过mescroll的mixins补充子组件缺少的生命周期
 */
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;
